Проблемы с возвращаемым значением "ГДЕ" в MySQL - PullRequest
2 голосов
/ 31 марта 2019

Представьте, что у нас было 2 таблицы, и я хочу вернуть все столбцы из таблицы1 с одним столбцом из таблицы2, чем я использую для фильтрации столбца таблицы2

посмотрите на этот запрос:

SELECT table1.* , table2.name AS anotherName 
FROM table1 INNER JOIN table2 ON table1.id = table2.id 
WHERE anotherName LIKE '%something here %'

Я знаю, что не могу использовать другое имя. Вот так, и я получил сообщение об ошибке, но у меня нет никакой идеи, чтобы решить эту проблему

Ответы [ 2 ]

1 голос
/ 31 марта 2019

Псевдоним обнаружен в предложении having, но не в предложении where.Если вы настаиваете на использовании псевдонима в условии, вам нужно использовать having вместо where:

HAVING anotherName LIKE '%something here %'

В противном случае вы должны назвать исходное имя:

WHERE t2.name LIKE '%something here %'  

Вы также можете проверить эту ссылку, чтобы понять, почему псевдоним нельзя использовать в предложении where.

1 голос
/ 31 марта 2019

попробуйте, как показано ниже, просто используйте непосредственно этот столбец, где

SELECT t1.* , t2.name AS anotherName 
FROM table1 t1 INNER JOIN table2 t2 ON table1.id = table2.id 
WHERE t2.name LIKE '%something here %'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...