OKデータベース: これが参考にされているが、私が現在働いている何のために働いていないMySQL GROUP BY two columns 。とき、クエリ私は今、数日間辺りで見ている、と私はこれを見つけた
quantity_id int(11) auto_increment not null (primary key)
product_id int(11) not null
color_id int(11) not null
size_id int (11) not null
quantity int (11) not null
表2(色)から成る:
color_id int(11) auto_increment not null (primary key)
color_name varchar(255)
ので、ここ
は、私は3つの異なるテーブル
表1(量)で構成を有しているものの範囲であります表3(サイズ)で構成:
size_id int (11) auto_increment not null (primary key)
size varchar(255)
SELECT s.size, c.color_name, q.quantity, q.size_id, q.product_id, q.color_id
FROM quantities q, colors c, sizes s
WHERE q.color_id = c.color_id
AND q.size_id = s.size_id
AND q.product_id = $pid
GROUP BY q.color_id
ORDER BY q.size_id
$ pidは、フォームが渡す製品IDです。
私は2つの異なるselect文に結果をロードすると:色の1、サイズ のための1つ、私は同じ色やサイズの倍数を得る:
red s
red L
yellow L
私はそれが文字通り出て行を引っ張っていることを理解しどのように私は自分自身を繰り返さないのですか?
私は
SELECT s.size, c.color_name, q.quantity, q.size_id, q.product_id, q.color_id
FROM quantities q LEFT JOIN colors c ON q.color_id = c.color_id
LEFT JOIN sizes s ON q.size_id = s.size_id
WHERE q.product_id = $pid
がより良い方法はありますこのクエリを試してみましたか?
何を達成しようとしているのですか? – Einacio
これは役に立ちます。 ここでゲームを終了します。1個以上の数量の商品をセレクトボックスに追加したいだけです。 「赤」、「青」、または「青」の複数の色を表示したくないなど 今のようには 赤L 赤S 黄色L ブルーS – alexis