SQL 連線 表,取副表的第一條資料

2021-07-05 05:16:04 字數 1280 閱讀 6047

兩個表是一(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)

Group By 分組並取第一條資料

mysql 我使用排序進行篩選,保證分組 排序之後我的第一條資料就是我要的資料 select a.code a.type as 班型 max a.num from select from cent ylb numclass group by code,type order by code,num d...

取不同類別的第一條資料

select row number over order by size as rownum,from o orderwovenlabel row number over order by size 表示得到某一列的行號 select no identity int,1,1 into temptab...

oracle去除重複, 取最新的第一條資料

解決思路 用oracle的row number over函式來解決該問題。解決過程 1.檢視表中的重覆記錄 2.標記重複的記錄 3.過濾重複資料,取得最新的記錄 row number over partition by col1 order by col2 表示根據col1分組,在分組內部根據 co...