【发布时间】:2012-02-28 18:48:03
【问题描述】:
我有 3 个表 A、B 和 C。我想获取每个 id 的 subId 和文本。我也想知道 id 是否有一些 eId 链接到它。
我在 A 和 B 上使用了 INNER JOIN,然后用表 C 左连接了该结果。到目前为止,我的 SQL 字符串是:
SELECT DISTINCT A.id,A.subId, B.text, C.eId
FROM A
INNER JOIN B ON A.id=B.id
LEFT JOIN C ON A.id=C.id
WHERE B.text='something'
问题是 C.eId 每个 id 都有多个条目。所以我得到这样的输出:
=================================
id | subId | text | eId
1 e12 etc
2 e12 etc
2 t23 etc p1111
3 e12 etc
4 e12 etc p1234
4 e12 etc p4325
我想删除最后一行(“4 e12 等 p4325”),因为我已经知道 4, e12 有一些其他 eId 链接到它。我需要 id 和 subId 作为 PrimaryKeys。
我该怎么做? DISTINCT 一直有效,直到我向一个 eId 添加了多个 id。
编辑:如果有影响,我会使用 MSSQL。
【问题讨论】:
标签: sql primary-key left-join distinct inner-join