【发布时间】:2020-02-06 12:07:18
【问题描述】:
2 个表分别是 RetailOutlet 和 SalesMan,两者都通过 ROID 连接,ROID 是主要的,对于 Retail Outlet 是唯一的。
Salesman 有主键 SID,但也有外键 ROID。
http://sqlfiddle.com/#!9/b1cd8a
CREATE TABLE IF NOT EXISTS `RetailOutlet` (
`id` int(6) unsigned NOT NULL,
`year` int(4) unsigned NOT NULL,
`location` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `RetailOutlet` (`id`, `year`, `location`) VALUES
('1', '1994', 'oregon'),
('2', '1990', 'amazon'),
('3', '2004', 'california'),
('4', '1997', 'newyork');
CREATE TABLE IF NOT EXISTS `SalesMan` (
`sid` int(6) unsigned NOT NULL,
`sname` varchar(200) NOT NULL,
`manager` int(4) unsigned NOT NULL,
`id` int(6) unsigned NOT NULL,
PRIMARY KEY (`sid`),
FOREIGN KEY (`id`)
) DEFAULT CHARSET=utf8;
INSERT INTO `SalesMan` (`sid`, `sname`, `manager`, `id`) VALUES
('1', 'john', 'fingao', '2'),
('2', 'bekc', 'dilda', '3'),
('3', 'aaa', 'elda', '4'),
('4', 'erjan', 'rrrrokcks', '1');
我的查询是获取不在纽约且只有 1 个推销员的商店,按名称的字母顺序显示。
SELECT * FROM SalesMan s INNER JOIN RetailOutlet r ON
s.ROID = r.ROID where count(s.SID) = 1 and
r.Location NOT LIKE 'New York' order by s.sname desc
我不知道什么不起作用。
【问题讨论】:
标签: sql inner-join sqlfiddle