一尘不染

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

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

我尝试遵循此逻辑:单个查询中有多个选择语句,但以下代码不起作用:

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

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


阅读 167

收藏
2021-03-17

共1个答案

一尘不染

您可以执行以下操作:

 (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

2021-03-17