0

結合されたテーブルのクエリで重複データが表示される原因。group byを試しましたが、1つの列をグループ化し、他の列にも同じデータを表示するため、役に立たず、はっきりと機能しません。これが私が実行しているクエリです。このクエリが実行されている3つのテーブルを抽出し、次の場所に配置しました。http: //pastie.org/4413153 クエリは次のとおりです。

select
pov.products_options_values_id,
pov.products_options_values_name,
pov.color_code,
inv.model,
inv.quantity,
img.id
from products_options_values as pov

left join tbl_inventory as inv
on pov.products_options_values_id = inv.color_id

inner join products_images img
on img.products_id = inv.products_id
where img.products_id = '301'

これが出力のスクリーンショットです。(3つのレコードがそれぞれ3回印刷されていることに注意してください。) ここに画像の説明を入力してください

このクエリから期待する結果は次のとおりです:(スクリーンショット) ここに画像の説明を入力してください

これは、このクエリが追加されるページのスクリーンショットです。

申し訳ありませんが、スクリーンショットは私がやろうとしていることと一致しませんが、あなたは写真を手に入れるでしょう。

ここに画像の説明を入力してください

色の名前は選択ドロップダウンで使用され、関連する色の16進値は色付きのボックスで使用されます。これらのボックスの目的は、マウスをその上に置くと、左側の画像が、クエリに含める必要があると述べた画像IDの値に変更されることです。その画像IDの値を取得し、関連する画像を左側に表示するajax呼び出しがあります。

tbl_inventoryとその数量カウントの目的は、特定の色の数量が0の場合、その色とそれに関連する16進数がドロップダウンまたはボックスに表示されないようにすることです。

4

1 に答える 1

0

実際には、重複はありません。3つの「繰り返される」レコードはそれぞれ異なるid値を持ちます。(65,66,67)これはそれぞれをユニークにします。SELECT句から削除img.idしてDISTINCTを追加すると、「繰り返される」レコードが削除されます。

select distinct
pov.products_options_values_id,
pov.products_options_values_name,
pov.color_code,
inv.model,
inv.quantity
from products_options_values as pov
   . . .
where img.products_id = '301'
于 2012-08-08T18:47:28.560 に答える