[請益] mysql如何篩選出兩個搜尋結果中不同的資料

看板PHP作者 (あいぼんFOREVER)時間17年前 (2007/01/12 18:04), 編輯推噓3(3011)
留言14則, 2人參與, 最新討論串1/1
我現在想要做到的功能是將兩個搜尋結果中不同的資料挑出來 不過試了很久還是找不到方法,所以特此請教各位先進。 目前我有兩個搜尋,搜尋出的資料欄位型態是一樣的, 不過條件有所差異,我的目的就是要列出這兩個搜尋找出的不同資料, 示意如下: 第一個搜尋出來的結果是 a.A b.B b.C ------------ 001 名稱A xxx 002 名稱B xxx 003 名稱C xxx 第二個搜尋出來的結果 b.A b.B b.C ------------ 001 名稱A xxx 003 名稱C xxx 但我只想要列出兩者之間不相同的資料, 也就是 A B C ------------ 002 名稱B xxx 但不知道該從何下手, 也因為兩個搜尋的A欄位並不是同一個table的欄位, 所以我試著用JOIN去作好像有點問題, 也有想過先將兩個搜尋分別執行再篩選, 但不知道該如何用php語法做到理想的效果, 希望有先進能夠不吝指導,謝謝各位。 兩段搜尋的語法詳細如下: $sql_1=" SELECT space_data.SD_ID,space_category.SC_NAME,space_category.SC_MONEY FROM space_data,space_category WHERE space_data.SC_ID='$SC_ID' AND space_category.SC_ID='$SC_ID'"; $sql_2_del=" SELECT space_borrow.SD_ID,space_category.SC_NAME,space_category.SC_MONEY FROM space_borrow,space_data,space_category WHERE space_data.SC_ID='$SC_ID' AND space_category.SC_ID='$SC_ID' AND space_borrow.SD_ID=space_data.SD_ID AND space_borrow.SB_DATE='$SB_DATE' AND space_borrow.SB_TIME='$SB_TIME'"; 先謝過各位了。 <(_"_)> -- ◢█  ◢█◣ ◢◣◢  ◢█◣ ◢█ ◢█ ◣◢ ██◢██◣╱ ◢██◣╱ ██ ██ ████████ ██ ███ ██ ██ ██████████ ████ ███◣╱ ██████ ████◥█ ██ ██◥█ ◥██◤  █◥█◤ ══ ㊣花˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙的㊣ ══ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.187.51 ※ 編輯: Hanakun 來自: 211.74.187.51 (01/12 18:17)

01/12 18:24, , 1F
我記得沒錯sql語法用 not exist
01/12 18:24, 1F
這個我有找到相關的資料, 不過由於兩個搜尋所抓的欄位雖然相同, 但分屬於不同的資料表,所以試過用NOT EXIST的結果好像跑不起來, 不過還是很謝謝你的回應, 也希望能有更好的意見能夠提供,謝謝大家。 ※ 編輯: Hanakun 來自: 211.74.187.51 (01/12 18:52)

01/12 19:54, , 2F
找了一下 我想要的效果是像SQL裡的MINUS語法
01/12 19:54, 2F

01/12 19:55, , 3F
不過MySQL不支援 試著用NOT IN會又出現錯誤
01/12 19:55, 3F

01/12 19:55, , 4F
不知道有沒有其他能夠達到相同效果的語法呢?
01/12 19:55, 4F

01/12 22:01, , 5F
問題解決了~耶~ 方法是把這兩個搜尋個別建view
01/12 22:01, 5F

01/12 22:02, , 6F
然後再去對這兩個view以LEFT JOIN方式找出非共有的資料
01/12 22:02, 6F

01/12 22:03, , 7F
這個方法有點笨 可是確定可以正確找出想要的資料
01/12 22:03, 7F

01/12 22:03, , 8F
原本用MINUS就可以做到的功能 址可惜MySQL就是不支援...
01/12 22:03, 8F

01/13 02:48, , 9F
個人覺得你的搜尋語法忘了做關聯造成的....
01/13 02:48, 9F

01/13 02:50, , 10F
也就是要加上一段 AND space_data.SC_ID=space.SC_ID
01/13 02:50, 10F

01/13 02:51, , 11F
view 有個缺點就是他會創造一個資料表在記憶體內卡記憶體
01/13 02:51, 11F

01/13 02:52, , 12F
效率會比一般功能差了一點
01/13 02:52, 12F

01/13 18:55, , 13F
謝謝樓上的指導 不過就是因為加上後會怪怪的 所以才放棄
01/13 18:55, 13F

01/13 18:56, , 14F
至少功能要出來 效能的話嘛 就聽天由命囉 :p
01/13 18:56, 14F
文章代碼(AID): #15frqZE9 (PHP)