0

私は自分の SQL に少し慣れていません。これらのクエリについて、頭を悩ませたり、可能かどうかを調べたりするのに苦労しています。

こんにちは、テーブルがいくつかあります。

クライアント,製品,クライアント製品

clientid と productid を使用して、クライアントが clientproducts に追加された製品をオプトインするとき。

簡単なクエリ クライアントがオプトインした製品のみを表示するクエリを実行したい。

難しいの は、製品をオプトインしていないクライアントだけを表示するクエリを実行したいということです。

よろしくお願いいたします。

4

4 に答える 4

2

クエリ 1:

   SELECT table1.id1 FROM table1
    WHERE table1.id1 IN (SELECT table2.foreign_id FROM table2);

クエリ 2:

      SELECT table1.id1 FROM table1
        WHERE table1.id1 NOT IN (SELECT table2.foreign_id FROM table2);
于 2013-02-26T12:02:49.860 に答える
0

client_id=1であるすべての製品情報を取得します

select products.*
from products, clientproducts
where products.id = clientproducts.product_id
and clientproducts.client_id = 1

製品を選択していないすべてのクライアントの詳細を取得します

select *
from clients
where id not in (select client_id
            from clientproducts)
于 2013-02-26T12:07:29.307 に答える
0

簡単なクエリ

SELECT * FROM clients LEFT JOIN products ON clients.id = products.client_id

ハードクエリ

SELECT * FROM clients WHERE clients.id NOT IN (SELECT clients.id FROM clients LEFT JOIN products ON clients.id = products.client_id)
于 2013-02-26T12:05:45.987 に答える
0

ここで、使用LEFT JOIN

SELECT  a.*
FROM    products a
        LEFT JOIN clientproducts b
            ON a.productID = b.productID
        LEFT JOIN clients c
            ON  b.clientID = c.clientID AND
                c.ClientID = 'clientID HERE'
WHERE   c.client IS NULL

また

SELECT  a.*
FROM    products a
        LEFT JOIN clientproducts b
            ON a.productID = b.productID AND
               b.ClientID = 'clientID HERE'
WHERE   b.productID IS NULL
于 2013-02-26T12:02:59.117 に答える