如何从另一个表中获取有关一个不同列的更多信息?

时间:2012-08-24 07:23:51

标签: mysql

我有以下查询:

SELECT distinct a, b, c, d 
FROM db.table
INNER JOIN db.table2
ON table.name=table2.name2
WHERE e <>'65';

查询选择a,b,c,d中不同的值。我实际需要的仅是a。其余列b,c,d我需要它们来提供有关a的更多信息。我该怎么做呢。
知道表连接为1:N,其中列table2.name2是table.name的外键引用。即table.name是唯一值,可以包含多于table2中的相应记录。

连接为1的两个表之间有什么区别:M表示外键,两个完全独立的表表示编写查询。

1 个答案:

答案 0 :(得分:1)

为实现此目的,您需要在GROUP BY中使用GROUP_CONCAT SELECT

SELECT a,
       GROUP_CONCAT(b) AS b,
       GROUP_CONCAT(c) AS c,
       GROUP_CONCAT(d) AS d
FROM db.table
     INNER JOIN db.table2
        ON table.name=table2.name2
WHERE e <>'65'
GROUP BY a;