Rad*_*van 7 sql postgresql join ansi-sql
我想确认一下SQL查询
SELECT ....
FROM apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas
WHERE ....
Run Code Online (Sandbox Code Playgroud)
完全等同于FROM子句中的其他排列,例如
SELECT ....
FROM oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id,
bananas,
apples
WHERE ....
Run Code Online (Sandbox Code Playgroud)
要么
SELECT ....
FROM bananas,
apples,
oranges
LEFT JOIN kiwis ON kiwis.orange_id = oranges.id
WHERE ....
Run Code Online (Sandbox Code Playgroud)
只要橘子和猕猴桃之间明确的LEFT JOIN保持不变.从我在各种文档中看到的内容来看,返回的集应该完全相同.
我真的只关心查询的结果,而不是它在实际数据库中的性能.(我正在使用PostgreSQL 8.3,AFAIK不支持关于连接顺序的优化器提示,并将尝试自动创建最佳查询计划).
gbn*_*gbn 15
它是相同的,但与隐含的 CROSS JOINs 一样模棱两可.使用显式JOINS.
如果要加入WHERE子句,则结果可能会有所不同,因为连接和过滤器混合在一起.
SELECT ....
FROM apples a
JOIN
bananas b ON ...
JOIN
oranges o ON ...
LEFT JOIN
kiwis k ON k.orange_id = o.id
WHERE (filters only)
Run Code Online (Sandbox Code Playgroud)
笔记:
| 归档时间: |
|
| 查看次数: |
15435 次 |
| 最近记录: |