在MySQL中组合查询

时间:2014-12-11 18:35:28

标签: mysql dml

我在MySQL中有两个表,如下所示:

ID  Name    Information
1   A       fsdf
2   B       ada
3   A       dsafd
4   A       retret
5   C       asdfsa
6   B       xzc

P_ID    Name    Loc_X   Loc_Y
1       A       2       3
2       B       3       4
3       C       4       5

我想在MySQL中运行一个返回结果的查询,如下所示:

NAME    COUNT   Loc_X   Loc_Y
A       3       2       3 
B       2       3       4
C       1       4       5

目前,我可以执行以下查询:

SELECT Name,COUNT(*) as count FROM Table_A GROUP BY Name ORDER BY count DESC;

获得以下结果:

NAME    COUNT
A       3
B       2
C       1

我知道可能我可以使用这个结果只提取"名称"然后使用PHP获取另一个查询来获取Loc_X和Loc_Y,但我想知道是否有一种使用DML的有效方法。有没有办法嵌套查询?

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

SELECT Table_A.Name,COUNT(*) as count, Table_B.Loc_X, Table_B.Loc_Y
FROM Table_A 
INNER JOIN Table_B ON Table_A.name = Table_B.name
GROUP BY Table_A.Name, Table_B.Loc_X, Table_B.Loc_Y 
ORDER BY count DESC;

答案 1 :(得分:0)

我认为你只需要在这里加入公共领域的表格。

尝试:

SELECT a.Name, count(a.id) AS Count b.Loc_X, b.Loc_Y
FROM Table_A a
INNER JOIN Table_B b ON a.Name = b.Name
GROUP BY a.Name