对我的病情我的SQL查询是什么?

时间:2013-06-12 15:05:32

标签: mysql select

我有两张相互ID相关的表格。 我想显示表A中的所有名称,但有一些额外的信息, 表B中的名称是否存在于表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    |
+------+---------+

请帮我查询..谢谢之前

1 个答案:

答案 0 :(得分: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