编写SQL查询以生成预期输出所需的帮助

时间:2018-05-28 12:07:06

标签: sql

我一直在寻找下表所需的预期输出。我已经附加了两个表的查询以完成数据和结构。

问题是items和sellers表的列名都有一个同名列(NAME)所以如果我尝试加入,那么我会得到歧义错误

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

我们如何实现预期产出,如下所述

Item      Seller
----------------
Notebook  Penny
Pencil    Penny

2 个答案:

答案 0 :(得分:0)

试试这个:

select a.id,a.name,b.name as seller
from
items a
left join
sellers b
on a.sellerid = b.id;  

如果需要澄清,请告诉我。

答案 1 :(得分:0)

SELECT i.name Item, s.name Seller
FROM items i
INNER JOIN sellers s ON s.Id = i.sellerId
WHERE s.name = 'Penny'

使用JOIN。