SQL DISTINCT INNER JOIN 和 LEFT JOIN 以及 .NET C# PrimaryKey
我有 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 作为主键。
我该怎么做? DISTINCT 一直有效,直到我将多个 id 添加到一个 eId 中。
编辑:如果有影响的话,我使用 MSSQL。
I have 3 tables A, B, and C. I want to get the subId and text for each id. I also want to know IF the id has some eId linked to it.
I've used INNER JOIN on A and B and then LEFT JOIN'd that result with tabel C. My SQL string so far is:
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'
The problem is that C.eId has multiple entries for each id. So I'm getting output like this:
=================================
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
I want to remove the lines like the last one ("4 e12 etc p4325") because I already know that 4, e12 has some other eId linked to it. I need id and subId to be PrimaryKeys.
How do I do this? DISTINCT worked until I added multiple id's to an eId.
Edit: I use MSSQL if that makes a difference.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不记得它是否可以这样工作,尝试一下并告诉我:
I don't recall if it works this way, try it and tell me: