Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql SQL从多个表中获取值,然后对其排序_Mysql_Sql - Fatal编程技术网

Mysql SQL从多个表中获取值,然后对其排序

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

我想做一个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 '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

你试过什么吗?你试过联合吗?听上去,你的数据库设置不正确。为了什么目的将相同的信息传播到四个不同的表中?在不同的表中使用相同的名称是有原因的。显示表结构和一些示例数据以及预期的输出。而且更可取的是,你已经尝试过的东西不起作用。