【发布时间】:2014-01-27 04:41:18
【问题描述】:
我有以下数据,这些数据也在SQL FIDDLE 中。
CREATE TABLE completework
(`id` int, `workerid` int, `checkerid` int);
CREATE TABLE worker
(`id` int, `name` varchar(20));
INSERT INTO completework
(`id`, `workerid`, `checkerid`)
VALUES
(1, 2, 4),
(2, 3, 5),
(3, 4, 1),
(4, 5, 2),
(5, 1, 3),
(6, 2, 4),
(7, 3, 5),
(8, 4, 1),
(9, 5, 2),
(10, 1, 3),
(11, 2, 4),
(12, 3, 5),
(13, 4, 1),
(14, 5, 2);
INSERT INTO worker
(`id`, `name`)
VALUES
(1, 'Anthony'),
(2, 'Bill'),
(3, 'Claire'),
(4, 'Daniel'),
(5, 'Emma');
我想返回工人是工人或检查员的结果,所以我认为我需要合并这两列,但是当我尝试这样做时,我得到了错误
Subquery returns more than 1 row
我已经尝试了以下
select
workerid as wid,
wn.name
from completework
inner join worker wn on completework.workerid=wn.id
group by wid
上面只是获取workerid列
select
checkerid as cid,
wn.name
from completework
inner join worker wn on completework.checkerid=wn.id
group by cid
上面只是获取checkerid列
SELECT DISTINCT workedonid FROM (
SELECT checkerid workedonid FROM completework
UNION
SELECT workerid workedonid FROM completework
)c
ORDER BY workedonid ASC
上面从任一列获取一个 id
select
(
SELECT DISTINCT workedonid FROM (
SELECT checkerid workedonid FROM completework
UNION
SELECT workerid workedonid FROM completework
)c
) a,
wn.name
from completework
inner join worker wn on completework.checkerid=wn.id
group by a
在上面我试图将上面的内容放入子查询中,但出现错误,我该如何解决这个问题?
【问题讨论】:
标签: mysql sql select join in-clause