0

次のスキーマがあるとします。

CREATE TABLE customers(
    id INTEGER PRIMARY KEY, 
    name TEXT
);
CREATE TABLE items(
    id INTEGER PRIMARY KEY, 
    name TEXT
);
CREATE TABLE customers_items(
    customerid INTEGER, 
    itemid INTEGER, 
    FOREIGN KEY(customerid) REFERENCES customers(id),
    FOREIGN KEY(itemid) REFERENCES items(id)
);

次に、いくつかのサンプル データを挿入します。

INSERT INTO customers(name) VALUES ('John');
INSERT INTO customers(name) VALUES ('Jane');

INSERT INTO items(name) VALUES ('duck');
INSERT INTO items(name) VALUES ('cake');

ジョンとジェーンの ID が 1 と 2 で、アヒルとケーキの ID も 1 と 2 であるとします。ジョンにアヒルを与え、ジェーンにアヒルとケーキの両方を与えましょう。

INSERT INTO customers_items(customerid, itemid) VALUES (1, 1);
INSERT INTO customers_items(customerid, itemid) VALUES (2, 1);
INSERT INTO customers_items(customerid, itemid) VALUES (2, 2);

ここで、次の 2 種類のクエリを実行します。

  1. アヒルとケーキの両方を持っている顧客の名前を選択します ('Jane' のみを返す必要があります)。
  2. アヒルを飼っていて、ケーキを持っていない顧客の名前を選択します (「ジョン」のみを返す必要があります)。
4

1 に答える 1