SELECT INNER JOIN仅返回一个结果

时间:2014-04-04 08:10:51

标签: mysql sql database

我在数据库中从2个表中选择一些数据时遇到了问题。

表格为psthostesspsttodo-uit

在我的psthostess我要选择字段CodeName 在我的psttodo-uit中,我想选择:

  • PB = 1的总和
  • PG = 1的总和
  • PA = 1的总和
  • h.GoedkeuringDoorNew = GF
  • 的总和
  • h.GoedkeuringDoorNew = SB
  • 的总和
  • h.GoedkeuringDoorNew = VIA
  • 的总和
  • h.Blanco的总和

这是我的疑问:

SELECT p.Code, p.Name, sum(h.PB = 1), sum(h.PG = 1), sum(h.PA = 1), 
       sum(h.GoedkeuringDoorNew = 'GF'), sum(h.GoedkeuringDoorNew = 'SB'),  
       sum(h.GoedkeuringDoorNew = 'VIA'), sum(h.Blanco)
   FROM psthostess p
   INNER JOIN `psttodo-uit` h ON h.`Hostess Code` = p.Code
   WHERE p.Indienst = 1

问题是我总是得到一行的结果。但psthostess中有多行Indienst = 1(WHERE)。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

您需要按非聚合列对其进行分组。

SELECT p.Code, p.Name, sum(h.PB = 1), 
sum(h.PG = 1), sum(h.PA = 1), sum(h.GoedkeuringDoorNew = 'GF'), 
sum(h.GoedkeuringDoorNew = 'SB'), sum(h.GoedkeuringDoorNew = 'VIA'), sum(h.Blanco)
FROM psthostess p
INNER JOIN `psttodo-uit` h ON h.`Hostess Code` = p.Code
WHERE p.Indienst = 1
group by p.Code, p.Name