看板 PHP 關於我們 聯絡資訊
我現在想要做到的功能是將兩個搜尋結果中不同的資料挑出來 不過試了很久還是找不到方法,所以特此請教各位先進。 目前我有兩個搜尋,搜尋出的資料欄位型態是一樣的, 不過條件有所差異,我的目的就是要列出這兩個搜尋找出的不同資料, 示意如下: 第一個搜尋出來的結果是 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)
wa120:我記得沒錯sql語法用 not exist 01/12 18:24
這個我有找到相關的資料, 不過由於兩個搜尋所抓的欄位雖然相同, 但分屬於不同的資料表,所以試過用NOT EXIST的結果好像跑不起來, 不過還是很謝謝你的回應, 也希望能有更好的意見能夠提供,謝謝大家。 ※ 編輯: Hanakun 來自: 211.74.187.51 (01/12 18:52)
Hanakun:找了一下 我想要的效果是像SQL裡的MINUS語法 01/12 19:54
Hanakun:不過MySQL不支援 試著用NOT IN會又出現錯誤 01/12 19:55
Hanakun:不知道有沒有其他能夠達到相同效果的語法呢? 01/12 19:55
Hanakun:問題解決了~耶~ 方法是把這兩個搜尋個別建view 01/12 22:01
Hanakun:然後再去對這兩個view以LEFT JOIN方式找出非共有的資料 01/12 22:02
Hanakun:這個方法有點笨 可是確定可以正確找出想要的資料 01/12 22:03
Hanakun:原本用MINUS就可以做到的功能 址可惜MySQL就是不支援... 01/12 22:03
wa120:個人覺得你的搜尋語法忘了做關聯造成的.... 01/13 02:48
wa120:也就是要加上一段 AND space_data.SC_ID=space.SC_ID 01/13 02:50
wa120:view 有個缺點就是他會創造一個資料表在記憶體內卡記憶體 01/13 02:51
wa120:效率會比一般功能差了一點 01/13 02:52
Hanakun:謝謝樓上的指導 不過就是因為加上後會怪怪的 所以才放棄 01/13 18:55
Hanakun:至少功能要出來 效能的話嘛 就聽天由命囉 :p 01/13 18:56