連表查詢兩個表中第乙個表中有而第二表中沒有的資料

2021-09-01 21:55:12 字數 779 閱讀 3336

我有2個mysql資料表 

a表乙個欄位aname,資料:a、b、c、d、e 

b表乙個欄位bname,資料:a、b、c 

現在我想查出存在於a表、但不存在於b表裡的資料:d、e 

不知道mysql裡面的語句這麼寫??? 

標準sql語句大概是:select aname from a where aname not in(select bname from b) 

但是mysql不支援巢狀查詢~~~有什麼其他方法嗎?好象join可以多表連線查詢,但是沒想出來怎樣寫語句   

如果在乙個left join中沒有右表的匹配記錄,乙個所有列設定為null的行被用於右表。你可以使用這個事實指出表中在另乙個表中沒有對應記錄的記錄: 

mysql> select table1.* from table1 

left join table2 on table1.id=table2.id 

where table2.id is null; 

這個例子找出在table1中所有的行,其id值在table2中不存在(即,所有table1中的在table2中沒有對應行的行)。當然這假定table2.id被宣告為not null。 

==== 

摘自mysql中文參考手冊

例項select `a`.`hotelid` from `hotel_citys` `a` left join `hotel_jiages` `b` on

`a`.`hotelid` = `b`.`hotelid` where `b`.`hotelid` is null

兩個鍊錶第乙個公共節點

先讓長的鍊錶的指標先走長的之差的步數,兩個再一起走,如果相遇就是第乙個公共節點 如果沒交點,就都走到空 struct listnode class solution while pl2 null 復位指標到頭節點 pl1 phead1 pl2 phead2 int dif len 0 if len1...

鍊錶問題 兩個鍊錶的第乙個公共節點

題目 輸入兩個鍊錶,找出它們的第乙個公共結點 分析 對於這個問題有三種思路 1 蠻力演算法,當遍歷到乙個節點時,就在另外乙個鍊錶上順序遍歷,並且判斷是否相等,如果想等就是第乙個重合的節點,對於兩個長度分別為m和n的鍊錶,所需要的時間為o m n 實現如下 struct listnode 蠻力解法 l...

兩個鍊錶的第乙個公共結點

思路 獲取兩個鍊錶的長度,求的長度差n,讓長鍊表先遍歷n次,然後長鍊表和短鍊錶同時遍歷,當長鍊錶和短鍊錶相等時,即為第一公共結點。o m1 m2 public class findfirstcomnode int len1 getnodelength root1 int len2 getnodele...