-3

我有两个通过相互 ID 相关的表。我想显示表 A 中的所有名称,但是有一些额外的信息,表 A 中的名称是否存在于表 B 中?这是一个例子

表 A

+-----------+------+
| Mutual ID | Name |
+-----------+------+   
|     1     | A    |   
|     1     | B    |
|     1     | C    |
|     1     | D    |
|     1     | E    |
+-----------+------+

表 B

+-----------+------+
| Mutual ID | Name |
+-----------+------+   
|     1     | A    |   
|     1     | B    |
|     1     | C    |
+-----------+------+

我想要这样的输出

+------+---------+
| Name |hasMutual|
+------+---------+   
| A    |   Yes   |   
| B    |   Yes   |
| C    |   Yes   |
| D    |   No    |
| E    |   No    |
+------+---------+

请帮我查询..谢谢

4

1 回答 1

1

这需要左连接TableBTableA。如果没有对应的TableB行,则其值为NULL.

这应该会给你你想要的输出:

SELECT
  TableA.Name,
  CASE WHEN TableB.Name IS NULL THEN 'No' ELSE 'Yes' END AS hasMutual
FROM TableA
LEFT JOIN TableB ON TableA.Name = TableB.Name
WHERE TableA.MutualID = 1
ORDER BY TableA.Name
于 2013-06-12T15:09:45.677 回答