我有一张这样的桌子
comptitle,trknum,cdtitle "A-Tisket, A-Tasket",4,Swing Choo Choo Ch' Boogie,13,Swing Clouds,10,Swing Countdown,11,Giant Steps Countdown,3,Giant Steps Cousin Mary,10,Giant Steps Cousin Mary,14,Swing Cousin Mary,2,Giant Steps Down South Camp Meetin',8,Swing Giant Steps,1,Giant Steps Giant Steps,8,Giant Steps I Know Why,5,Swing It's a Good Enough to Keep,12,Swing Java Jive,7,Swing Mr. P.C.,7,Giant Steps Naima,6,Giant Steps Naima,9,Giant Steps Sing a Study in Brown,2,Swing Sing Moten's Swing,3,Swing Sing You Sinners,6,Swing Skyliner,11,Swing Spiral,4,Giant Steps Stomp of King Porter,1,Swing Syeeda's Song Flute,12,Giant Steps Syeeda's Song Flute,5,Giant Steps Topsy,9,Swing
我从这个查询中得到的
SELECT comptitle, trknum, cdtitle from composition join track on track.compid = composition.compid join cd on cd.cdid = track.cdid group by comptitle, trknum, cdtitle order by comptitle, trknum;
我只想显示comptitle (第一列)是重复的行,所以结果应该是
comptitle,trknum,cdtitle Countdown,11,Giant Steps Countdown,3,Giant Steps Cousin Mary,10,Giant Steps Cousin Mary,14,Swing Cousin Mary,2,Giant Steps Giant Steps,1,Giant Steps Giant Steps,8,Giant Steps Naima,6,Giant Steps Naima,9,Giant Steps Syeeda's Song Flute,12,Giant Steps Syeeda's Song Flute,5,Giant Steps
我试过使用count,但是having count(comptitle) > 1返回每一行,而不是只返回带有重复项的行。
发布于 2018-02-20 02:20:13
如果没有弄错,表track存储每个组合的跟踪数。在这种情况下,您可以创建一个子查询,该子查询获取具有多个轨道的compid,
SELECT
comptitle, trknum, cdtitle
FROM
composition
JOIN
track ON track.compid = composition.compid
JOIN
cd ON cd.cdid = track.cdid
INNER JOIN
(SELECT compid
FROM track
GROUP BY compid
HAVING COUNT(compid) > 1) cc ON composition.compid = cc.compid
GROUP BY
comptitle, trknum, cdtitle
ORDER BY
comptitle, trknum;我认为,如果您能给出每个表和样本记录之间的关系,那么这个查询仍然可以简化。
https://stackoverflow.com/questions/48876890
复制相似问题