私の質問を実行すると、私は2の代わりにsellerIdにアタッチされたアイテムを1つ戻します。誰も私が言うことができる方法を知っていますか?商品ID:
再販売者に属する各商品の商品名と再販売者を選択します。 4より高い評価?
現在のクエリ:
SELECT items.name, sellers.name
FROM items
inner JOIN sellers
on items.id=sellers.id
WHERE rating > 4
ORDER BY sellerId
クエリのテーブルのためにINC。データ:
CREATE TABLE sellers (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
rating INTEGER NOT NULL
);
CREATE TABLE items (
id INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(30) NOT NULL,
sellerId INTEGER REFERENCES sellers(id)
);
INSERT INTO sellers(id, name, rating) values(1, 'Roger', 3);
INSERT INTO sellers(id, name, rating) values(2, 'Penny', 5);
INSERT INTO items(id, name, sellerId) values(1, 'Notebook', 2);
INSERT INTO items(id, name, sellerId) values(2, 'Stapler', 1);
INSERT INTO items(id, name, sellerId) values(3, 'Pencil', 2);
両方のテーブルにある結合が必要ですか? sellerIdは1に入っていますか? – Marc
いいえ、seller.id(売り手の一意の識別子)をitems.id(アイテムテーブルの一意の識別子)に追加しています。これらの2つのテーブル間のリンクは、items.selleridへのseller.idです。 items.selleridはテーブル定義のseller.idへの外部キーです。 –
私はそれを読んでいたとき外来キーを見たことがありませんでした。ありがとう、あなたはそれを透明にしました! – Marc