Mysql SQL从多个表中获取值,然后对其排序
我想做一个MySQL查询。我有4张桌子:A、B、C、D 我想从“account”=1的所有4个表中获得公共值:“wins”,然后按大多数“wins”排序。所有订购的“胜利”限制为3 如果你帮助我,我会非常高兴 我试过这样的方法:Mysql SQL从多个表中获取值,然后对其排序,mysql,sql,Mysql,Sql,我想做一个MySQL查询。我有4张桌子:A、B、C、D 我想从“account”=1的所有4个表中获得公共值:“wins”,然后按大多数“wins”排序。所有订购的“胜利”限制为3 如果你帮助我,我会非常高兴 我试过这样的方法: SELECT o.* FROM ( (SELECT wins FROM 'A') UNION ALL (SELECT wins FROM 'B') UNION ALL (SELECT wins FROM 'C') UNION ALL (SELECT wins FROM
SELECT o.*
FROM (
(SELECT wins FROM 'A')
UNION ALL
(SELECT wins FROM 'B')
UNION ALL
(SELECT wins FROM 'C')
UNION ALL
(SELECT wins FROM 'D')
UNION ALL
(SELECT * FROM 'A'
WHERE
account=1)
) AS o
ORDER BY wins DESC
但这确实是错误的。如果您需要了解从中获得结果的表格:
SELECT *
FROM ( SELECT wins, 'Table A' AS DataTable
FROM TableA
WHERE account = 1
UNION ALL
SELECT wins, 'Table B'
FROM TableB
WHERE account = 1
UNION ALL
SELECT wins, 'Table C'
FROM TableC
WHERE account = 1
UNION ALL
SELECT wins, 'Table D'
FROM TableD
WHERE account = 1) AS X
ORDER BY wins
LIMIT 3
如果这并不重要,而您只需要最高级别的赢款
:
SELECT *
FROM ( SELECT wins
FROM TableA
WHERE account = 1
UNION
SELECT wins
FROM TableB
WHERE account = 1
UNION
SELECT wins
FROM TableC
WHERE account = 1
UNION
SELECT wins
FROM TableD
WHERE account = 1) AS X
ORDER BY wins DESC
LIMIT 3
从
A
加入
B
加入
C
加入
D
在
D
账户
=A
账户
和
C
账户
=A
账户
和
B
账户
=A
账户
和
A
账户
='1'ORDER BY
A
wins
你试过什么吗?你试过联合吗?听上去,你的数据库设置不正确。为了什么目的将相同的信息传播到四个不同的表中?在不同的表中使用相同的名称是有原因的。显示表结构和一些示例数据以及预期的输出。而且更可取的是,你已经尝试过的东西不起作用。