两个表是一(A表)对多(B表)的关系,join的时候,B表只对应显示第一条数据(某些条件)。sql该如何写?
表A Aid title days 1 清远二天游 2 2 东莞一天游 1 3 深圳小梅沙二天 2表BBid BAid price1 1 52202 1 33303 1 2004 1 3005 2 465466 2 5557 2 558 2 55529 3 33310 3 333011 3 44412 3 44413 3 44442个表通过通过Aid=Baid连接期待的结果:a.aid b.baid b.bid a.title a.days b.price 1 1 1 清远二天游 2 5220 2 2 5 东莞一天游 1 46546 3 3 9 深圳小梅沙二天 2 333 aid内容相同的数据只显示一条。
解答:
select a.aid,a.title,a.days,b.price from 表A a,(select min(bid) as bid, BAid,min(price) as price from 表B group by BAid) b where a.aid=b.baid获取所有字段:
select a.*,b.* from 表A a,表B b where a.aid=b.baid and b.bid in (select min(bid) as bid from 表B group by Baid)