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