Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 如何使用第三个表中一列的相应和对两个表之间的联接查询进行排序?_Mysql_Sorting_Join_Sum - Fatal编程技术网

Mysql 如何使用第三个表中一列的相应和对两个表之间的联接查询进行排序?

Mysql 如何使用第三个表中一列的相应和对两个表之间的联接查询进行排序?,mysql,sorting,join,sum,Mysql,Sorting,Join,Sum,我有以下简单的查询,它可以正常工作,并满足我的要求: SELECT Table1.*, Table2.* FROM Table1, Table2 WHERE Table1.Col1 != '1' AND Table2.Col2 LIKE 'Miami' AND (Table2.Col3 LIKE 'USA' OR Table2.Col2 LIKE

我有以下简单的查询,它可以正常工作,并满足我的要求:

SELECT 
    Table1.*, 
    Table2.*                    
FROM 
    Table1, Table2                          
WHERE 
    Table1.Col1 != '1' AND
    Table2.Col2 LIKE 'Miami' AND
    (Table2.Col3 LIKE 'USA' OR  Table2.Col2 LIKE 'US') AND  
    Table1.Col1 = Table2.Col1
我现在需要按照表3中相应值的总和对这些结果进行排序(
SUM(Table3.Col2)
),这样
Table3.Col1=Table1.Col1
Table3.Col1=Table2.Col1

我认为只要在WHERE子句中加上SELECT子句中的
SUM(Table3.Col2)
,这两行就行了,但这不起作用,只返回一个结果和所有
Table3.Col2
值的总和,而不仅仅是与其他两个表中的匹配行相对应的表

我该怎么做?

试试这个:

SELECT 
    Table1.*, 
    Table2.*                    
FROM 
    Table1 JOIN Table2 on Table1.Col1 = Table2.Col1
    JOIN (SELECT Col1, SUM(Table3.Col2) as `SumCol` FROM Table3) as SumTable ON Table2.Col1 = SumTable.Col1                         
WHERE 
    Table1.Col1 != '1' AND
    Table2.Col2 LIKE 'Miami' AND
    (Table2.Col3 LIKE 'USA' OR  Table2.Col2 LIKE 'US') AND  
    Table1.Col1 = Table2.Col1
ORDER BY SumTable.SumCol DESC

不幸的是,这没有起作用。奇怪的是,它产生了与我的尝试几乎完全相同的单行结果,尽管查询看起来非常不同。有什么想法吗?谢谢。很难说没有看到您表中的一些示例数据,或者您正在寻找的数据结果的示例。您可能希望将此添加到您的问题中。