..


赞助商链接

使用UNION来组合来自两个表的结果

由Max博西写文章

SQL语言为我们提供了一个非常简单的方法结合起来,在相同的SELECT语句,两个不同的表的结果。

要做到这一点,它的时间来使用UNION all'opertore这将在事实上,通过查询两个表得到的结果集。

请注意,为了正确使用,它的时间,该联盟运营商:

  • 该表是质疑的列数相同;
  • 要求该列具有相同的名称;
  • 在两个表中的列必须有一致的数据类型;
下面是一个例子:比方说,不得不在经营旅行社的假设假设我们的数据库和数据库只包含两个表:
  • hotel_italia
    • 姓名
    • 明星
    • 全市
    • 全国
  • hotel_europa
    • 姓名
    • 明星
    • 全市
    • 全国
现在假设一个客户要我们知道无论是在意大利和欧洲的酒店提供:





 SELECT姓名,星星,城市,国家







从hotel_italia







 UNION







 SELECT姓名,星星,城市,国家







从hotel_europa



有了这个查询,我们得到了两个表中的所有酒店的完整清单:

姓名 明星 全市 全国
酒店凯沃尔 4 罗马 EN
酒店米拉马雷 2 天主教 EN
酒店曼佐尼 2 米兰 EN
西班牙酒店 3 马德里 ES
希尔顿 5 伦敦的 英国
酒店很Schlossgarten 4 斯图加特 DE

注:请注意,联盟不显示任何(默认情况下运行,就好像它是一个重复的记录SELECT DISTINCT ),如果你想要任何重复的记录也显示(想回到我们的例子,在这家酒店在该hotel_italia hotel_europa表两者)将需要使用UNION ALL。

排序和限制所产生的结果,从UNION

假设使用UNION的结果,许多希望他们被限制在指定的号码。 如何? 这里有一个解决方案:

 



 SELECT * FROM







 (SELECT姓名,星星,城市,国家从hotel_italia







 UNION







 SELECT姓名,星星,城市,从hotel_europa国家)







 AS酒店







 ORDER BY DESC LIMIT 10位明星

 
本质上讲,我们把结果从两个或多个表的联合而产生的,如果他们是一个单一的表结果,这样做,我们可以使用标准的排序和限制。

在同一类...
电子学习
MS访问(高级) MS访问(高级)
了解如何创建和管理数据库迅速和容易。 起价29€。
MySQL的(课程) MySQL的(课程)
管理的开放源码数据库。 从39€。
SQL和数据库(课程) SQL和数据库(课程)
创建和管理关系数据库。 从39€。
赞助商链接