我刚刚开始学习sql,并且试图了解如何在SQL中执行以下操作。
我有2张桌子: 示例-TableA(Id),TableB(Id,文本)
Following are the values in Table A:
1
2
1
以下是表B中的值(注意-文本列将始终具有与其具有的ID相似的值):
1, Tom
2, John
1, Tom
3, Doe
我尝试执行以下查询: “从TableB,TableA中选择TableB.Text,其中TableA.Id = TableB.Id”
它返回:
Tom
Tom
John
Tom
Tom
我要寻找的地方:
Tom
John
Tom
如果在SQL中可以做到这一点,谁能指出正确的方向?
答案 0 :(得分:1)
您可以直接在子查询中“区分”而不是直接加入tableb
。
SELECT b.text
FROM (SELECT DISTINCT
id,
text
FROM tableb) b
INNER JOIN tablea a
ON a.id = b.id;
tableb
的不同版本如下:
id text
---------
1 Tom
2 John
3 Doe
第二个'Tom'
不见了。像这样,不再有两行匹配ID 1
,这导致'Tom'
在原始查询结果中是{{ 1}}。