我可以在 sybase 中做到这一点,我可以在 oracle 中做到这一点,但我没有看到如何在 mysql 中做到这一点。
我有这个:(请克制自己不要重新格式化我的sql,上次有人这样做他们改变了它,所以它不一样,使问题变得毫无意义)
select table1.id
from
table1
inner join
table2 on (table1.id = table2.id and table2.data='cat'),
table1 t1
left outer join
table3 on (t1.id = table3.id and table3.data = 'dog')
我得到了各种毫无意义的结果。
我想从 table1 中获取所有 id 的列表,其中 table2.data = cat,然后对 table3.data = dog 的表 3 的结果进行外部连接。
我注意到我不能在两个连接子句中为 table1 指定相同的表/别名,所以这让我相信 mysql 正在单独运行连接表达式并将结果组合在一起或类似的东西。
我还尝试摆脱 from 部分中的“内部连接”并将其放在 where 子句中,这也不起作用,尽管它没有以不同的方式工作(得到不同的错误结果)
这在 sybase 或 oracle 中非常容易。
我究竟做错了什么?