2016-04-06 33 views
0

我无法在我准备好的声明中获得左连接。左连接在我准备好的声明中不起作用(mysqli)

"SELECT DISTINCT(a.auto_id), m.merk, a.model, a.uitvoering, a.standaardtekst, a.prijs, a.prijs2, a.prijs3, a.handelsprijs, a.aanmaak, s.soort, z.prijs_id 
/*,GROUP_CONCAT(DISTINCT(apc.NL) ORDER BY apc.NL ASC)*/ 

FROM autocom_new.auto_new a 
INNER JOIN autocom_new.tbl_merken m 
ON a.merk = m.merk_id 
INNER JOIN autocom_new.tbl_soort s 
ON a.soort = s.soort_id 
INNER JOIN autocom_new.auto_zoekmachines z 
ON a.auto_id = z.auto_id 

/* 
LEFT JOIN autocom_new.auto_accessoire acc 
ON a.auto_id = acc.auto_id 
LEFT JOIN autocom_new.tbl_autopricecode_new apc 
ON acc.code_id = apc.code_id 
*/ 

WHERE a.ac LIKE ? AND a.flag = ?" 

评论部分是不工作的部分。 我不知道我在做什么错。

编辑 首先我忘了两个表都有一个列ac,所以我已经改变了where语句。左连接现在正在工作,但选择中的部分仍然不起作用

+0

连接和预处理语句之间没有关系。任何原始生成的查询,在准备好的情况下都可以运行。所以,调试你的SQL。 –

+0

如果我只执行查询,它会给我1行。 (应该更多),如果我把这个查询放在准备好的语句中,我就不会有任何行 –

+0

请显示表定义,主键和外键。 –

回答

0

所以问题是我忘了GROUP BY。

"SELECT DISTINCT(a.auto_id), m.merk, a.model, a.uitvoering, a.standaardtekst, a.prijs, a.prijs2, a.prijs3, a.handelsprijs, a.aanmaak, s.soort, z.prijs_id, 
GROUP_CONCAT(DISTINCT(apc.NL) ORDER BY apc.NL ASC) 

FROM autocom_new.auto_new a 
INNER JOIN autocom_new.tbl_merken m 
ON a.merk = m.merk_id 
INNER JOIN autocom_new.tbl_soort s 
ON a.soort = s.soort_id 
INNER JOIN autocom_new.auto_zoekmachines z 
ON a.auto_id = z.auto_id 

LEFT JOIN autocom_new.auto_accessoire acc 
ON a.auto_id = acc.auto_id 

LEFT JOIN autocom_new.tbl_autopricecode_new apc 
ON acc.code_id = apc.code_id 

WHERE a.ac LIKE ? AND a.flag = ? 
GROUP BY a.auto_id" 
+0

为什么downvote? –