使用连接选择Distinct

时间:2014-03-06 05:34:04

标签: mysql

select DISTINCT cid,cname,tid
    from colors c
    left join tags t on t.tname = c.cname;

颜色

  

cid cname

     

1红色

     

2蓝色

     

3绿色

标签:

  

tid tname

     

1红色

     

2红色

     

3蓝色

     

4绿色

当前结果:

  

1红1

     

1 red 2

     

2 blue 3

     

3 green 4

预期结果:

  

1红1

     

2 blue 3

     

3 green 4

5 个答案:

答案 0 :(得分:3)

此查询应符合您的预期结果

select cid,cname,tid
from colors c
left join tags t on t.tname = c.cname;
group by c.cid

答案 1 :(得分:0)

select 
    cid, cname, tid
from
    colors c
        left join
    tags t ON t.tname = c.cname
GROUP BY c.cname,c.cid,t.tid;

答案 2 :(得分:0)

GROUP BY标记名称

select DISTINCT cid,cname,tid
from colors c
left join tags t on t.tname = c.cname;
GROUP BY t.name

答案 3 :(得分:0)

我没有mysql试试这个,但这应该对你有所帮助。还有一件事是你不能直接在你的查询中使用tid来计算它。

select  cid, cname, count(tid)
    from Color c
    left join tags t on t.name = c.cname
GROUP BY cname;

这里是sqlFiddle

答案 4 :(得分:0)

使用group by

select cid,cname,tid
from colors c
left join tags t on t.tname = c.cname
group by cid,cname,tid;