2016-04-06 19 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 = ?" 

コメントのある部分は機能しない部分です。 私は何が間違っているのか分かりません。

EDIT 私は両方のテーブルに列交流を持っていることを忘れてまず第一に、私はどこのステートメントを少し変更しました。左側の結合は現在機能していますが、選択中の部分はまだ動作していません

+0

ジョインとプリペアドステートメントの間には関係がありません。 rawを処理するクエリは、準備されたときにも動作します。だから、あなたの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? –

関連する問題