我想在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'
由于
答案 0 :(得分:2)
您不能在WHERE子句中使用列别名。试着把它放在HAVING中它应该可以工作。
此处的说明:http://dev.mysql.com/doc/refman/5.0/en/problems-with-alias.html
答案 1 :(得分:0)
您显示的查询很奇怪。您可以通过这种方式获得相同的结果(交叉产品):
SELECT S.One
FROM contacts,
(SELECT DISTINCT 1 as One FROM table WHERE somereallycomplicatedclause = 'something') S
我认为您应该多说一下您尝试解决的问题(例如,子查询和联系人表之间的链接是什么)?