0

2 つの異なるテーブルにまたがる SQL クエリが必要であり、基本的に WHERE 句 (またはサブセレクト) に集計関数が必要ですが、SQL は初めてです。基本的に、最初のテーブルは注文のヘッダー (常に 1 つのレコードのみ) であり、注文に含まれるアイテムの数を示します。次の表は、注文の各アイテムのレコードを示しています。クエリは、テーブル 2 にレコードが 1 つしかない場合でも、複数のレコードがあるかどうかを確認できる必要があります。

ロジックは次のとおりです。

SELECT * from table2 
JOIN table1 on table1id = table2id
WHERE table1.numberofitems = 1
AND count(table2.products) > 1

where句に集計があるため、明らかにこれは機能しません。誰かがうまくいくかもしれない何かを提案できますか?

4

1 に答える 1

1

副選択が機能する可能性があります。または、テーブル 2 の主キーだけが必要な場合は、group by でも問題ありません。

グループ化の例:

SELECT table2id from table2 
JOIN table1 on table1id = table2id
WHERE table1.numberofitems = 1
GROUP BY table2.table2id
HAVING count(table2.products) > 1

table2 のすべての列を返す副選択の例:

SELECT * from table2 t2
JOIN table1 on table1id = table2id
WHERE table1.numberofitems = 1
AND 1 < (SELECT COUNT(table2.products) FROM table2 t2s 
WHERE t2.table2id = t2s.table2id)
于 2014-07-02T16:09:37.720 に答える