两个表是一(A表)对多(B表)的关系,join的时候,B表只对应显示第一条数据(某些条件)。sql该如何写?

表A
Aid           title          days
1   清远二天游     2
2   东莞一天游     1
3   深圳小梅沙二天 2

表B
     Bid           BAid          price
        1              1          5220
        2              1          3330
        3              1           200
        4              1           300
        5              2         46546
        6              2           555
        7              2            55
        8              2          5552
        9              3           333
       10              3          3330
       11              3           444
       12              3           444
       13              3          4444

2个表通过通过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)


本文转载:CSDN博客