SQL语句--结果的唯一性

来源:百度知道 编辑:UC知道 时间:2024/06/20 15:55:14
A表(产品表)值:
字段名: id name lei
----------------------------------
记录: 1 铅笔 1
2 小刀 2
3 圆珠笔 2
4 毛笔 1
5 好铅笔 2
6 次品铅笔 2
7 橡皮 2
...
...
...

B表(公司表)值:
字段名: id lei
----------------------------------
记录: 1 世界名笔公司
2 中国名笔公司
...
...
...

表关系:A表lei字段记录的为所属公司的ID

求助:搜索结果
A表名称中含有'%笔%'的记录 id,name,以及该记录所属的公司名(最重点的是每个公司只显示一个产品——显示第一个即可)
字段名: id lei name
----------------------------------
1 铅笔 世界名笔公司
3 圆珠笔 中国名笔公司
--------------------------------------------------------------------

select B.nameid,A.[name],C.lei from A表 A
inner join (select min(id) as nameid,lei from A表 A where [name] like '%笔%' group by lei) C on A.id=C.nameid
inner join 表B B on C.lei=B.id

select A.id,A.name,B.lei
from A join B
on A.lei=B.id
where a.name like '%笔%'
and A.id in
(
select min(A.id)
from A join B
on A.lei=B.id
where a.name like '%笔%'
group by a.lei
)

select T1.[id],T1.[name],B.[lei] from
(
select * from A where [id] in (select min([id]) from A group by [lei])
) T1 left join B on T1.[lei] = B.[id]

select a.id,A.name,B.lei
from a join b on a.lei=b.id
where a.name like '%笔%'

select min(id),name,lei from(select A.id id,name,B.lei from (A join B on A.lei=B.id))aa where name like '%笔%' group by lei