SQL:一个查询中有两个选择语句

新手上路,请多包涵

我想在一个查询中从两个 SQL 表中选择信息,但这些信息是不相关的,因此不存在潜在的关节。

一个示例可能是以下设置。

tbl马德里

   id | name    | games | goals
    1 | ronaldo | 100   | 100
    2 | benzema | 50    | 25
    3 | bale    | 75    | 50
    4 | kroos   | 80    | 10

tbl巴塞罗那

   id | name    | games | goals
    1 | neymar  | 60    | 25
    2 | messi   | 150   | 200
    3 | suarez  | 80    | 80
    4 | iniesta | 40    | 5

我想要一个查询,它给我以下信息:

 name    | games | goals
messi   | 150   | 200
ronaldo | 100   | 100

我试图遵循这个逻辑: Single query 中的 Multiple select statements 但以下代码不起作用:

 USE Liga_BBVA

SELECT (SELECT name,
               games,
               goals
        FROM   tblMadrid
        WHERE  name = 'ronaldo') AS table_a,
       (SELECT name,
               games,
               goals
        FROM   tblBarcelona
        WHERE  name = 'messi')   AS table_b
ORDER  BY goals

对这个有什么建议吗?谢谢信息:足球的东西只是一个简化的例子。实际上,不可能将两个表合二为一并拥有一个新的“团队”列。这两个表有完全不同的结构,但我需要一些与这个例子的特征相匹配的东西。

原文由 Berbatov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 265
2 个回答

你可以这样做:

  (SELECT
    name, games, goals
    FROM tblMadrid WHERE name = 'ronaldo')
 UNION
 (SELECT
    name, games, goals
    FROM tblBarcelona WHERE name = 'messi')
ORDER BY goals;

参见,例如: https ://dev.mysql.com/doc/refman/5.0/en/union.html

原文由 Ray Kiddy 发布,翻译遵循 CC BY-SA 4.0 许可协议

正如我所见,您希望每支球队的进球最多,您可以试试这个

从 tblRealMadrid union select name,games,max(goals) 作为“最多进球” 从 tblBarcelona 选择 name,games,max(goals) 作为“最多进球”

原文由 ابراهیم سمیر حسين محمود 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进