私は2つのテーブルCustomers
とProducts
を持っています。顧客は複数の製品を持つことができます。行を比較するSQLクエリ(クラスがどこにあるか)
特定の製品を持っていない顧客を検索しようとしています。例えば
、10人の顧客は、製品A
とB
を買って、別の10人の顧客はA
、B
を買って、そしてC
。 C
製品をお持ちでないお客様を検索するにはどうすればよいですか?あなたの現在のDB構造については
私は2つのテーブルCustomers
とProducts
を持っています。顧客は複数の製品を持つことができます。行を比較するSQLクエリ(クラスがどこにあるか)
特定の製品を持っていない顧客を検索しようとしています。例えば
、10人の顧客は、製品A
とB
を買って、別の10人の顧客はA
、B
を買って、そしてC
。 C
製品をお持ちでないお客様を検索するにはどうすればよいですか?あなたの現在のDB構造については
、これはあなたが探しているものされています
select c.id, c.name, c.phone, c.address
from Customers c
where not exists (select * from products p
where p.customer_id = c.id and p.id = 'c')
ただし、個々の購入を格納するための第三のテーブルを作成することを検討すべきです。
あなたは本当に(@Tonyアンドリュースと@Adrianによってすでに示唆したように)顧客が製品を買っているの詳細を格納する第三のテーブルを持っている必要がありselect *
FROM customer c
WHERE NOT EXISTS (SELECT 1 from products p
WHERE p.customer_id = c.id)
。これはあなたの製品テーブルから重複を除去している意味
**Customer**
Id
Name
Address
Phone
**Product**
Id
Name
Price
**Customer_Product**
customer_id
product_id
:よう
気にいりません。商品名がわずかに変更された場合は、何行する必要があるかを考えてください。複数の行を更新するのではなく、1行だけを更新するだけで済みます。取引履歴はすべて..
テーブル構造を指定する必要があります。私たちは霊的ではありません! – StevieG
おそらく少なくとも* 3つのテーブルがあります:購入することができる「顧客」(別名顧客)、買うことができる「商品」、どの顧客がどの製品を購入したかを示す「購入」。私は正しい? –
お客様 ID 名 電話 アドレス 製品 ID 名 は、私が言及するのを忘れてしまった – allyraza