【发布时间】:2021-03-22 22:48:26
【问题描述】:
即使缺少值,我也会尝试保持一行。但我就是想不通。
10.4.14-MariaDB
示例查询:
SELECT
data.name,
am.value AS color
FROM
color_data cd
INNER JOIN color_data am
ON cd.value = am.id
INNER JOIN data
ON cd.id = data.id
WHERE
data.type = "vehicles"
AND data.slug LIKE "%something%"
AND cd.key = "color_id"
AND am.key = "color"
我得到了什么:
----------------------
name | color |
----------------------
car | red
bicycle | blue
我想要什么:
----------------------
name | color |
----------------------
car | red
boat | <-- When this is empty keep the row.
bicycle | blue
因此,当缺少颜色的 ID 时,该行将被删除。我还想保留那一排。这可能是我缺少的一些相当基本的东西。
【问题讨论】:
-
使用
LEFT JOIN而不是INNER JOIN -
并参见stackoverflow.com/questions/47449631/…,了解如何在加入时对
color表添加条件。