【发布时间】:2016-12-11 07:41:43
【问题描述】:
我想使用连接从多个表中获取数据。 它给出了唯一的行,但列值是重复的,并且 我无法删除重复的值,怎么办?
这些是我的桌子
表A
A_ID A_NAME
----- -------
1 ONE
2 TWO
3 THREE
表 B
A_ID B_ID CAT
----- ----- --------
1 1 CRICKET
1 2 FOOTBALL
2 3 HOCKEY
3 4 TENISH
3 7 BASE BALL
表C
B_ID NAME
------ ------
1 ASN
1 MARK
1 JOHN
2 JACKY
3 RAJ
3 SAM
预期输出
A_ID A_NAME B_ID CAT NAME
----- ------ ----- ------- ------
1 ONE 1 CRICKET ASN
MARK
JOHN
2 FOOTBALL JACKY
2 TWO 3 HOCKEY RAJ
SAM
3 THREE 4 TENISH
7 BASEBALL
查询:-
SELECT A.A_ID
,A.A_NAME
,B.B_ID
,B.CAT
,C.NAME
FROM A,B,C
WHERE A.A_ID = B.B_ID
AND B.B_ID = C.C_ID
GROUP BY A.A_ID,B_B_ID;
【问题讨论】:
-
在表现层做。
-
我已经完成了,但我想在 db 中完成?
-
今日提示:切换到现代显式 JOIN 语法。更容易编写(没有错误),更容易阅读(和维护),并且在需要时更容易转换为外连接。
-
分组依据无效。不会在较新的 MySQL 版本中执行(除非在兼容模式下。)一般 GROUP BY 规则说:如果指定了 GROUP BY 子句,则 SELECT 列表中的每个列引用必须标识一个分组列或者是一个集合的参数功能!
-
好的,但是任何人都可以帮助我如何使用查询来做到这一点