当我从mySQL数据库中的多个表中检索数据时,最好使用哪种方法,联接,联合或查看?每种方法的优点和缺点是什么,它们最适合什么情况?
答案 0 :(得分:0)
这实际上取决于您希望如何显示此数据。
联接用于选择相关数据并在同一行显示所有数据时,其中联合用于从两个不同的选择语句中一起显示数据。
在您的情况下,当您具有非常复杂的查询时,应该使用视图,并且您希望简化选择数据所需的select语句。如果你要反复使用select语句,它会减少混乱。使用观点还有很多其他原因,但我认为他们并不认同这个问题。
答案 1 :(得分:0)
@jworrin说的话。
SQL就是设置操作。
A inner join B
设置交集:A∩B
A union B
是......好吧......设置联盟:A∪B
A left join B
是一个复合词:(A∉(A∩B))∪(A∩B)
right join
与左连接相同。只需要语法糖来交换所涉及的表/集的位置。 B right join A
与A left join B
相同。
A full join B
也是一个复合词:(A∉(A∩B))∪(A∩B)∪(B∉(A∩B))
您使用的完全取决于问题。
view
本质上是一个不变的预制选择语句。它允许您呈现“虚拟表”,例如,规范化数据库的非规范化平面视图。视图对限制对列和/或表的访问也很有用。