猿问

MySQL:限制 LEFT OUTER JOIN / Left outer join where

我正在尝试从 custom_fields 加载所有条目,在 ID = fieldid 上与 custom_field_filter 左连接。但是我需要 JOIN 只发生在 custom_field_filter.formid = 6 的字段中。

您可以看到名为 Status 的条目已加载 3 次,这是我不想要的。我只想加载 formid 为 6 的选定行,以及所有其他 custom_fields 行

基本上选择并显示整个 custom_fields 表 + 仅在 custom_Field_filter.formid=6 的情况下使用 custom_Field_filter 进行左连接。

当然,如果我执行 WHERE 子句,它不会从 custom_fields 加载所有条目。那我该怎么做呢?


慕尼黑的夜晚无繁华
浏览 90回答 1
1回答

qq_花开花谢_0

在 ON 子句中添加带有 AND 运算符的相关子句    SELECT `custom_fields`.*, `custom_field_filter`.`fieldid` as `selected`     FROM `custom_fields`     LEFT OUTER JOIN `custom_field_filter`     ON `custom_fields`.`ID` = `custom_field_filter`.`fieldid`         AND `custom_field_filter`.`formid` = 6    ORDER BY `custom_fields`.`ID` ASC左连接表上的 where 子句作为内部连接工作..而不是在 ON 子句上使用条件保留左连接
随时随地看视频慕课网APP
我要回答