2012-04-06 14 views
1

これはあまりにも早すぎるかもしれませんが、私の現在のクエリステートメントに5番目のテーブルのクエリを追加できない理由がわかります。ここで5番目のテーブルを追加する

私は今のようxcart_images_D

に非常によく似
JOIN xcart_images_T xiT ON xi.id = xiT.id 

を設定するテーブルを持って次のクエリを追加しようとしています私の現在のクエリが

SELECT xp.productid, xp.product, xc.classid, xco.optionid, xco.option_name, count(xi.optionid) as cnt 
FROM xcart_products xp 
INNER JOIN xcart_classes xc ON xp.productid = xc.productid AND xc.class = 'Color' 
INNER JOIN xcart_class_options xco ON xc.classid = xco.classid 
LEFT JOIN xcart_images_D xi ON xi.optionid = xco.optionid 
GROUP BY xp.product, xco.optionid 
ORDER by xp.product DESC 

で、私の結果は、約から行きますジョインを追加した後は2,000から20です。これにより

+2

あなたは 'xi.id = xiT.id'の前に' xiT'を持っていますが) 'JOIN xcart_images_T xiT ON xi.id = xiT.id'ですか? – JScoobyCed

+1

何が問題なのですか?エラーが表示されますか?予期しない結果を得る?私たちは何が起こっているのか分からないのですか? –

+0

@JScoobyCedあなたはそれについて絶対に正しかった、私のところでのそのような監視はありがとう。 SamDeHaan質問がうまくいかなかったことを謝りました。 JScoobyCedは構文エラーを指摘することができました。その後、LEFT join BryceAtNetwork23が示されました。もう少し詳しい情報を含めるべきだったことを指摘してくれてありがとう、あなたは絶対に正しいです。 – Eric

答えて

1

JOIN xcart_images_T xiT ON xi.id = xiT.id 

あなたは(XI)xcart_images_Dテーブルに依存xcart_images_tのJOINを作っています。したがって、xcart_images_Dテーブルが一致しない場合、xcart_images_Tはマッチを返しません。

また、JOINを指定するだけで、暗黙のうちに問題の一部である可能性のあるINNER JOINが示されます。 xcart_images_Tに一致するものが必須条件でない場合は、LEFT JOINでなければなりません。

xcart_images_Tはそれがxcart_images_Dに似ているように思えるので、LEFTキー登録しようとしてxco.optionidに参加して、使用してみてください:

また
LEFT JOIN xcart_images_T xiT ON xiT.id = xco.optionid 

、あなたがxcart_images_Tから任意のフィールドを表示するために期待している場合やxcart_images_Dの場合は、それらをSELECTに追加する必要があります。それが役立つかどうかを見てください。

+0

ブライスさん、ありがとうございました。私はxi.idとxp.productidを結びつけてしまいましたが、私に正しい方向を教えるだけでなく説明のためにもあなたに感謝します。 – Eric

+1

@エリックねえ、問題ありません!私はあなたがそれを働かせてうれしいです。 – Aaron

関連する問題