看板 Database 關於我們 聯絡資訊
: table1: table2: : no data no data : ------------- ------------- : 1 10 1 25 : 2 20 2 20 : 3 30 4 35 : 4 40 : 5 50 SELECT a.no, CASE WHEN a.data < ISNULL(b.data, 0) THEN b.data ELSE a.data END FROM table1 a LEFT JOIN table2 b ON a.no = b.no ORDER BY 2, 1 以上寫法前提建立在table1擁有所有no 再用table2去LEFT JOIN補充 ISNULL是SQL Server的Function 我不確定mysql是否也有 判斷是否為NULL 如果有可能出現以下這種狀況 table1 table2 no data no data 1 10 1 20 3 20 2 30 那以上的寫法就會撈不到no=2 建議是先UNION ALL做subquery SELECT a.no, MAX(a.data) FROM ( SELECT no, data FROM table1 UNION ALL SELECT nom data FROM table2 ) AS a GROUP BY a.no ORDER BY 2, 1 但我不確定mysql是否能這樣寫...XDDDDDD 以上供參考~ -- ◢◣ ◢◣◥████ ◢███◣ ████ ███▉█ ◢█ ◣◢ ██ ███ ◥█ ███▉█ ◢▉█ ◢██ ███ ◢██ ◢██ ███ ◥██◤ █▇▇▇◤ █▉█ █▇▇ █▇ ▉▇▇ █▉█ ██ ▉▉█▏▏◢█ ██▇◣ █▇█ ▇▇█ ██ ███ █▇█▎██ █▉▉█▏▏ rushcat -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.99.164 ※ 編輯: rushcat 來自: 220.135.99.164 (02/17 22:17)
windtassel:後來有想到用CASE。感謝回答,我再試試看~ 02/18 01:12
windtassel:後來找到mysql有IFNULL和NULLIF,沒有ISFULL 02/28 22:58