SQL 如何在查询中要求一个值乘以倍数
SQL How to ask for a value multiply times in an Query
大家晚上好!
以下问题,我有三个表:
Create TABLE Suppliers (
SID integer,
sname varchar(50),
adress varchar(50),
PRIMARY KEY (SID)
)
Create TABLE Parts (
PID integer,
pname varchar(50),
color varchar(50),
PRIMARY KEY (PID)
)
Create TABLE Catalog (
SID integer,
PID Integer,
costreal integer,
PRIMARY KEY (PID,SID)
)
我要回答的问题是:
"Find the ids of suppliers who supply some red part and some green part."
希望你能帮帮我!
这听起来像是 having
的聚合和过滤:
select s.sid
from suppliers s
inner join catalog c on c.sid = s.sid
inner join parts p on p.pid = c.pid
where p.color in ('red', 'green') -- either one or the other
group by s.id
having min(p.color) <> max(p.color) -- both are present
大家晚上好!
以下问题,我有三个表:
Create TABLE Suppliers (
SID integer,
sname varchar(50),
adress varchar(50),
PRIMARY KEY (SID)
)
Create TABLE Parts (
PID integer,
pname varchar(50),
color varchar(50),
PRIMARY KEY (PID)
)
Create TABLE Catalog (
SID integer,
PID Integer,
costreal integer,
PRIMARY KEY (PID,SID)
)
我要回答的问题是:
"Find the ids of suppliers who supply some red part and some green part."
希望你能帮帮我!
这听起来像是 having
的聚合和过滤:
select s.sid
from suppliers s
inner join catalog c on c.sid = s.sid
inner join parts p on p.pid = c.pid
where p.color in ('red', 'green') -- either one or the other
group by s.id
having min(p.color) <> max(p.color) -- both are present