不带主键的SQL Combine 2表

时间:2018-09-08 21:33:33

标签: mysql sql

我刚刚开始学习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中可以做到这一点,谁能指出正确的方向?

1 个答案:

答案 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}}。