mysql - 如何加入 MySQL 查询

标签 mysql join

我有 2 个表要连接。

表 1 是一个主表,包含一组唯一的行。

ID DESCRIPTION
01 Alpha
02 Gamma
03 Delta
04 Beta

表 2 是一个包含许多行的明细表,其中只有一些行与主表匹配。

ID   INFO MASTER_ID
0001 abc  02
0002 def  02
0004 xyz  01
0005 mno  04

我想 JOIN 表以产生以下结果:

Alpha "has detail"
Gamma "has detail"
Delta "does not have detail"
Beta "has detail"

而不是:

Alpha "has detail"
Gamma "has detail"
Gamma "has detail"
Delta "does not have detail"
Beta "has detail"

后面的输出返回 Gamma 两次,我只希望它返回一次。

我尝试了 LEFT JOIN、RIGHT JOIN、INNER JOIN,但都没有产生我想要的结果。

感谢您的帮助。

最佳答案

使用 LEFT JOIN 可能你遗漏了什么

SELECT  CONCAT(a. description, IF(b.master_ID IS NOT NULL, ' has detail',' does not have detail'))
FROM    table1 a
        LEFT JOIN (SELECT DISTINCT master_ID FROM table2) b
            ON a.ID = b.master_ID

关于mysql - 如何加入 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13161907/

相关文章:

mysql - 这个连接正确吗?

MySQL 连接两行

mysql - 索引 MySQL 查询使用 1 比使用 0 执行得更好

java - 如何为多个表连接创建实体类

mysql - SQL查询以查找连接表行的计数作为每行的摘要

mysql - 如何通过网络在xampp phpmyadmin上导入sql

php - 只显示今天和 future 的数据

mysql - 根据相互喜欢连接MySQL中的两个表

mysql - 使用连接优化查询

mysql - SQL查找每个类别中长度大于其各自类别平均长度的下5部最长的电影?