当我离开时,像这样连接两个表:
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/