【发布时间】:2010-09-30 05:06:52
【问题描述】:
我可以在 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 where table2.data = cat 中获取所有 id 的列表,然后对 table3.data = dog 的表 3 的结果进行外连接。
我注意到我不能在两个连接子句中为 table1 指定相同的表/别名,这让我相信 mysql 正在单独运行连接表达式并将结果组合在一起或类似的东西。
我还尝试摆脱 from 部分中的“内部连接”并将其放在 where 子句中,这也不起作用,尽管它没有以不同的方式工作(得到不同的错误结果)
这在 sybase 或 oracle 中非常容易。
我做错了什么?
【问题讨论】:
标签: mysql inner-join outer-join