【发布时间】:2018-02-11 11:15:38
【问题描述】:
我有时读到它相当于写“a left join b”和“b right jojn a”。我以为我会理解这一点,但我在一本书中读到事实并非如此。它表示结果元组是相同的,但它们的顺序可能不同。我找不到对此的解释。我也尝试在我的本地 MySQL 服务器上按顺序重现这种差异,但我做不到。 唯一的区别似乎是属性的顺序。 谁能向我解释一下何时或为什么会出现元组顺序的差异?
【问题讨论】:
-
请引用书中的准确句子。此外,如果没有
ORDER BY子句,则无法保证顺序,这适用于几乎所有查询。 -
这是一本德文书籍。它说如果您在右连接中更改两个表并使用左连接,则返回的元组是相同的,但可以有不同的顺序。我认为 Gerard H. Pille 很好地回答了这个问题。
-
我不同意这一点。至少在 MySQL 中,右连接被简化为左连接 (ref),因此
b right join a在幕后被视为a left join b。但是可以,只要没有 ORDER BY,服务器就可以按任何顺序返回行。 -
这本书是德文的,这不是质量保证吗? ;-) 我发现阅读关系理论对于程序员来说非常令人耳目一新。这个是必须的:goodreads.com/book/show/6219481-sql-and-relational-theory
-
本书没有参考数据库系统。所以尝试使用 MySQL 无法改变它。谢谢...谢谢你的书...会看看它。现在我会留下我的书,因为它是我们大学课程的参考书。读一本英文书肯定对我的英语技能有好处;)