我想在一个查询中从两个SQL表中选择信息,但信息是不相关的,因此不存在潜在的关节.
一个例子可以是以下设置.
tblMadrid
id | name | games | goals
1 | ronaldo | 100 | 100
2 | benzema | 50 | 25
3 | bale | 75 | 50
4 | kroos | 80 | 10
Run Code Online (Sandbox Code Playgroud)
tblBarcelona
id | name | games | goals
1 | neymar | 60 | 25
2 | messi | 150 | 200
3 | suarez | 80 | 80
4 | iniesta | 40 | 5
Run Code Online (Sandbox Code Playgroud)
我想要一个查询,它给我以下内容:
name | games | goals
messi | 150 | 200
ronaldo | 100 | 100
Run Code Online (Sandbox Code Playgroud)
我试图遵循这个逻辑:单个查询中的多个select语句,但以下代码不起作用:
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
Run Code Online (Sandbox Code Playgroud)
对此有何建议?谢谢信息:足球的东西只是一个简化的例子.实际上,不可能将两个表放在一个并且有一个新的"团队"列.这两个表有完全不同的结构,但我需要一些与这个例子的特征相匹配的东西.
Ray*_*ddy 39
你可以这样做:
(SELECT
name, games, goals
FROM tblMadrid WHERE name = 'ronaldo')
UNION
(SELECT
name, games, goals
FROM tblBarcelona WHERE name = 'messi')
ORDER BY goals;
Run Code Online (Sandbox Code Playgroud)
例如,请参阅:https://dev.mysql.com/doc/refman/5.0/en/union.html
如果您希望将记录分开保存,而不要合并。
请在下面尝试查询
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
FROM DUAL
Run Code Online (Sandbox Code Playgroud)
小智 8
UNION 语句是你的朋友:
SELECT a.playername, a.games, a.goals
FROM tblMadrid as a
WHERE a.playername = "ronaldo"
UNION
SELECT b.playername, b.games, b.goals
FROM tblBarcelona as b
WHERE b.playername = "messi"
ORDER BY goals;
Run Code Online (Sandbox Code Playgroud)
只要列匹配,您就可以合并查询。
SELECT name,
games,
goals
FROM tblMadrid
WHERE id = 1
UNION ALL
SELECT name,
games,
goals
FROM tblBarcelona
WHERE id = 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
176482 次 |
| 最近记录: |