为什么查询只显示第一行?

时间:2015-11-17 20:44:16

标签: mysql sql

我们有2个表格 - Table1Table2

表1中的

id name
1  test
2  test2

表2为空,结构:

id table1_id

查询:

SELECT
  t1.name as name,
  count(t2.id) as count_show                
FROM 
Table1 as t1
LEFT JOIN
  Table2 as t2 on t2.table1_id= t1.id

结果我们看到:

name count_show
test   0

我们知道这个问题,但为什么呢?哪里有错误?

为什么我们只得到第一行以及如何输出所有行?

2 个答案:

答案 0 :(得分:0)

您必须在查询结尾添加Group by t1.id。 最后的查询:

SELECT t1.name AS name, COUNT(t2.id) AS count_show
FROM Table1 AS t1 LEFT JOIN Table2 AS t2 ON t2.table1_id = t1.id
GROUP BY t1.id

答案 1 :(得分:0)

按要求回答:

你正在做计数。它会自动分组。因此,如果您的行数只有一行,那就是您得到的。