当执行我的查询时,我只获得了我附加到SellerId而不是2的1个项目。有人知道我怎么说?

选择商品名称,然后为属于该卖家的每个商品选择卖家。评分高于4?

当前查询:

SELECT items.name, sellers.name
FROM items
inner JOIN sellers
on items.id=sellers.id
WHERE rating > 4
ORDER BY sellerId


查询表公司。数据:

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);

最佳答案

您的连接错误,这是一个更正的查询;

SELECT items.name, sellers.name
FROM items
inner JOIN sellers
    on items.sellerId=sellers.id
WHERE rating > 4
ORDER BY sellerId


您要加入ID = ID,您要SellerID = ID

注意,在表定义中,item.sellerId是连接到Seller.id的字段

CREATE TABLE items (
  id INTEGER NOT NULL PRIMARY KEY,
  name VARCHAR(30) NOT NULL,
  sellerId INTEGER REFERENCES sellers(id)
);

10-05 19:20