0

我有以下查询:

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 连接的两个表和两个完全独立的表之间有什么区别。

4

1 回答 1

1

要实现这一点,您需要使用GROUP BYwith GROUP_CONCAT in 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;
于 2012-08-24T07:36:46.653 回答