2011-07-14 25 views
-1

当我从mySQL数据库的多个表中检索数据时,最好使用哪种方法,联合,联合或视图?每种产品的优缺点是什么?它们最适合什么样的环境?从多个表中拼接数据

+0

这里没有一个正确的答案。这取决于您拥有的数据以及您想要使用的数据。 –

+0

视图可以使用JOIN和/或UNION,并且如果谓词推送不能发生,可能会直接执行以及直接对表执行操作。但我同意乔尔 - 这个问题太广泛了,应该针对特定的数据库。 –

回答

0

这真的取决于您希望如何显示这些数据。

连接用于选择相关数据并将其全部显示在同一行,其中联合用于将两个不同选择语句的数据组合在一起。

就你而言,当你有一个非常复杂的查询时,应该使用一个视图,并且你想简化选择数据所需的select语句。如果你一遍又一遍地使用select语句,它会减少混淆。有很多其他的理由来使用观点,但我不认为他们是相关的这个问题。

+0

谢谢,这是我以后的信息 –

0

@ jworrin说什么。

SQL是关于设置操作的。

  • A inner join B是设置路口:甲∩乙

  • A union B是......好设置联合:甲∪乙

  • A left join B是复合:(A ∉(A ∩ B))∪(A ∩ B)

  • right join与左连接相同。只需要语法糖来交换所涉及的表格/集合的位置。 B right join AA left join B相同。

  • A full join B也是一个复合:(A ∉(A ∩ B))∪(A ∩ B)∪(B ∉(A ∩ B))

使用哪种完全依赖于问题。

A view本质上是一个不变的罐装选择语句。它允许您呈现“虚拟表”,例如,归一化数据库的非归一化平面视图。视图对于限制对列和/或表的访问等也很有用。