mysql - 进行 LEFT JOIN 时,当第二个表中不存在匹配值时,匹配值将从结果中丢失

标签 mysql join left-join

当我离开时,像这样连接两个表:

SELECT * FROM a LEFT JOIN b ON a.id = b.id

如果b中没有匹配的行,则“id”为空,尽管它存在于a中。

我怎样才能保持这个值?

最佳答案

它并不是真的空。这就是您所使用的工具对结果的解释方式。您会看到,问题在于结果集有两列,称为 id,因此其中一列是任意选择的 - 而且它似乎不是您想要的。

最简单的方法是切换到 using 子句:

SELECT *
FROM a LEFT JOIN
     b 
     USING (id);

这只会在结果集中返回一次id,并且它应该具有第一个表中的值(在本例中)。

关于mysql - 进行 LEFT JOIN 时,当第二个表中不存在匹配值时,匹配值将从结果中丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688564/

相关文章:

mysql - 查询时间超过两秒

javascript - jquery - 找到整数或空格时拆分(即拆分类(class)代码)

sql - 使用聚合连接三个表

mysql - HAVING 子句影响结果

php - MAMP 上的 MySQL 表单无法正常工作

php - 在 PHP 中制作正确的 foreach HTML?

mysql - HQL 查询中的转义引号

MySQL真正的行合并......不仅仅是一个联合

sql - 每个左连接返回 1 个结果

SQL 查询 LEFT JOIN