SQL Left Join不显示所有行

时间:2015-07-04 14:47:33

标签: mysql sql join

我有以下查询:

目前我收到以下代码:

它只返回一个标签而不是数据库中的三个标签。

数据库如下所示:

在这个数据库中有3个标签,bm_tagslang ='de',但我只得到一个。

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:1)

tagslang.lang移至on条件。如果没有匹配项,则为NULL,因此会将left join更改为inner join

on blog.id = tagslang.blogid and tagslang.lang = ?

您还需要更改group by。它应该是:

group by blog.id

否则,您可能会按NULL值进行分组。

注意:请勿使用group by中不在SELECT中的列。这是一个MySQL(mis)功能,除非你真正理解你在做什么,否则不应该使用它。