尽管有许多类似的问题,但我没有找到答案。
我的查询:
SELECT bg2.id FROM big_table bg1
JOIN middle_table md ON bg1.url_id = md.id1
JOIN big_table bg2 ON bg2.url_id = md.id2
AND [a lot of conditions]
AND bg2.dependency_to_other_table NOT IN (
SELECT DISTINCT ot.id FROM big_table bg
JOIN other_table ot ON bg.dependency = ot.id
-- AND bg.value = bg1.value DOESN'T WORK
WHERE bg.value = bg1.value -- WORKS CORRECT
);
问题: 为什么我不能在ON
子句中使用外部别名,但可以在WHERE
子句中使用?
答案 0 :(得分:1)
我相信你不能在一个连接语句中加入不同的表。
bg .dependency = ot .id vs bg .value = bg1 .value