尝试建立动态链接,其中来自其他表的TOP 5将驱动结果(下面的示例基于Top 1以减少代码的长度)。 主要问题是我无法使用LIMIT命令。 我有这张桌子
CREATE TABLE work1
(
wo int (5),
duration int (5));
insert into work1 values
( 1 ,30),
( 2 ,45),
( 3 ,30),
( 4 ,40),
( 5 ,60),
( 6 ,80),
( 7 ,11);
还有这个
CREATE TABLE part1
(
part VARCHAR (5),
wo int (5));
insert into part1 values
("A" ,1),
('A' ,2),
('A' ,3),
('A' ,4),
('A' ,5),
('B' ,6),
('B' ,7),
('C' ,8),
('C' ,9),
('D' ,10);
我的结果基本上是part1的前1个Count(part)的wo和work1表的工期。
在这种情况下,A部分位于顶部,计数为5,我所追求的结果如下:
wo part duration
1 A 30
2 A 45
3 A 30
4 A 40
5 A 60
答案 0 :(得分:0)
这旨在回答针对MySQL(“完整”)MySQL的原始问题。
汇总part1
,以获取每个part
的计数,并以该计数从LIMIT
到前1的降序排列。然后将两个表连接到该派生表。
SELECT w1.wo,
p2.part,
w1.duration
FROM (SELECT p1.part
FROM part1 p1
GROUP BY p1.part
ORDER BY count(*) DESC
LIMIT 1) x
INNER JOIN part1 p2
ON p2.part = x.part
INNER JOIN work1 w1
ON w1.wo = p2.wo;
要从前1名更改为前5名,请将LIMIT 1
更改为LIMIT 5
。
答案 1 :(得分:0)
select p.wo, p.part, w.duration from part1 p inner join work1 w
on p.wo=w.wo
having count(p.*)<6