我需要通过ID加入2个表,而不会获取ID,InfoA和InfoB的重复值。我不需要InfoB2列中的数据。当我加入ID上的表,因为它是一个1到多个连接,我最终得到重复的值,并希望摆脱它们。我只想要没有重复项的ID,InfoA和InfoB。有什么想法吗?
实施例: 表A:
| ID | InfoA |
| 1 | animals|
| 2 | plants |
表B:
| ID | InfoB | InfoB2 |
| 1 | A | X |
| 1 | A | Y |
| 1 | A | Z |
| 2 | B | X |
| 2 | B | Y |
| 2 | B | Z |
进行正常连接,因为它是1到多,我得到了这个,但不想要重复。我不想要这个:
| ID | InfoB | InfoB |
| 1 | animals| A |
| 1 | animals| A |
| 1 | animals| A |
| 2 | plants | B |
| 2 | plants | B |
| 2 | plants | B |
我的目标是得到这个(注意我不需要列InfoB2):
| ID | InfoA | InfoB |
| 1 | animals| A |
| 2 | plants | B |
答案 0 :(得分:3)
您可以使用distinct
关键字:
SELECT DISTINCT a.id, infoa, infob
FROM tablea a
JOIN tableb b ON a.id = b.id
答案 1 :(得分:0)
最快的方式可能是:
select a.*,
(select b.infob from tableb b on a.id = b.id limit 1)
from tablea a;
为了提高性能,您需要tableb(id, infob)
上的索引。