Mysql - Могу ли я получить результат выборки и использовать его в предложении WHERE? - PullRequest
2 голосов
/ 04 июня 2009

Я хочу как извлечь, так и использовать в предложении where значение, возвращаемое из подвыбора в MySQL. Это возможно? Кажется, что нет необходимости выписывать подзапрос дважды - однако, если мне нужно, будет ли MySQL достаточно умен, чтобы выполнить его только один?

Я пробовал следующее, которое не работает:

SELECT 
  (SELECT 1 FROM table WHERE somereallycomplicatedclause = 'something')
      AS subselectresult 
FROM content WHERE subselectresult = 1

Это генерирует эту ошибку:

#1054 - Unknown column 'subselectresult' in 'where clause'  

Спасибо

Ответы [ 2 ]

2 голосов
/ 04 июня 2009

нельзя использовать псевдонимы столбцов в предложении WHERE. попробуйте положить его в HAVING, и тогда оно должно работать.

Объяснение здесь: http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html

0 голосов
/ 04 июня 2009

Ваш запрос, как вы показали, странный. Таким образом, вы можете достичь того же результата (перекрестное произведение):

SELECT S.One
FROM contacts,
(SELECT DISTINCT 1 as One FROM table WHERE somereallycomplicatedclause = 'something') S

Я думаю, вам следует больше рассказать о том, что вы пытаетесь решить (например, какова связь между подзапросом и таблицей контактов)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...