【发布时间】:2017-04-29 20:49:15
【问题描述】:
我有桌子 A 里面有这列:
id name to_include
1 wanted1 null
2 wanted2 wanted1
如果查询是针对 Wanted2,那么我需要一种方法来使用 WHERE 子句中 to_include 列(在本例中为 wanted1)中的值 我试过这样的:
SELECT * FROM (
SELECT * FROM A WHERE name = 'wanted2'
) AS B
UNION
SELECT * FROM A WHERE A.name = B.to_include
得到这个错误: “where 子句”中的未知列“B.to_include”
预期结果: 包含示例表中两行的记录集。
【问题讨论】:
-
您想使用 JOIN 或 IN 或 EXISTS 而不是 UNION
-
我认为两者都需要 - UNION 和 JOIN。但问题不是很清楚。
-
发布结果应该是什么样子,很难从你的描述中看出。我怀疑@PaulSpiegel 是对的——您需要在一个查询中使用
JOIN,然后将其与UNION结合起来。 -
预期结果:示例表中包含两行的记录集。
-
那么您应该可以接受 Barmars 的回答。我担心,您需要递归地“包含”这些行。
标签: mysql