Проблема с подзапросом в той же таблице

#java #mysql #sql #subquery

Вопрос:

Я новичок в sql, и мне нужна помощь в этом случае с помощью подзапроса.

В этом случае мне нужно захватить все идентификаторы клиентов под Амандой и Уамандой.Но теперь у меня есть только этот идентификатор клиента 100456.

Как я могу использовать этот подзапрос CustomerID 100456 combain, чтобы получить все данные в разделе Аманда и УАманда.

Ниже приведена таблица

Идентификатор пользователя Имя входа
100456 Аманда
101287 УАманда
102458 Оливер
103658 Льюис

Это мой подзапрос

 select customer_id,login_name
from
(select tc.customer_id, tc.login_name from t_customers tc where tc.login_name = login_name)
where t_customers where customer_id = 100456;
 

но это вернуло мне только Аманду со 100456, остальные УАманда не вернулись.

Может ли кто-нибудь помочь мне в этом вопросе?

Это ожидаемый результат, которого я хочу

Идентификатор пользователя Имя входа
100456 Аманда
101287 УАманда

Комментарии:

1. Пожалуйста, укажите фактический запрос, который вы используете.

Ответ №1:

 SELECT customer_id, login_name FROM t_customers WHERE login_name LIKE '%Amanda';
 

Комментарии:

1. Мой ответ работает, я хотел показать использование LIKE, но строгий ответ на ваш вопрос-это ответ от @pcsutar, который не вернет xAmanda, как у меня … ваш окончательный выбор зависит от вашей реальной потребности.

Ответ №2:

Если вы хотите захватить все идентификаторы клиентов под Амандой и Уамандой, то я думаю, что нет необходимости в подзапросе. Вы можете получить результат, используя приведенный ниже запрос:

 select customer_id, login_name
from t_customers
where login_name in ('Amanda', 'UAmanda');
 

Ответ №3:

Учитывая, что вы говорите, что у вас есть только данные customer_Id , я считаю, что вам нужно следующее:

 select * 
from customers
where login_name like (
    select Concat('%',Login_Name,'%') 
    from customers
    where Customer_Id=100456
)