mysql求兩個表的不同記錄

2021-06-08 21:03:55 字數 1432 閱讀 4714

問題是:現在有兩個表,乙個是記錄昨天的記錄,乙個是記錄今天的記錄,如何求

(1)新增的記錄:今天有,昨天沒有的記錄;

(2)減少的記錄:今天沒有,昨天有的記錄;

求解該類問題,需要用到sql的連線查詢。

為了簡單起見,使用user1表和user2表來進行儲存昨天的記錄和今天的記錄

create   table   test4.user1 (

id int not null,

name varchar(20) not null,

primary key (id)

);

然後更新表,得到如下結果

昨天的記錄存在user1表:

昨天的記錄存在user2表:

新增的記錄:

select test4.user2.id,test4.user2.name

from test4.user1 right outer join test4.user2

on test4.user1.id = test4.user2.id

where test4.user1.id is null;

執行結果:

減少的記錄:

補充知識點:

inner join,full outer join,left join,right jion

內部連線 inner join 兩表都滿足的組合

full outer 全連 兩表相同的組合在一起,a表有,b表沒有的資料(顯示為null),同樣b表有

a表沒有的顯示為(null)

a表 left join b表 左連,以a表為基礎,a表的全部資料,b表有的組合。沒有的為null

a表 right join b表 右連,以b表為基礎,b表的全部資料,a表的有的組合。沒有的為null

兩個不同庫的兩個表關聯後批量更新資料

有兩個表可以通過某個字段進行關聯,想要在乙個表中能夠查詢兩個表的資料的對應關係,但是這兩個表又在不同的庫中,查詢比較麻煩,所以需要批量更新乙個表中的乙個字段用來記錄關聯關係。可以對其中乙個表進行批量洗資料 將某乙個表匯入到另乙個表所在的庫中 然後執行批量更新的sql即可 update table1 ...

求兩個鍊錶的並集

這學期剛剛學的資料結構 老師布置的作業 寫寫看。include include define len sizeof struct list struct list struct list creat 定義函式,此函式返回乙個指向煉表頭的指標 p2 next null return head 判斷第b...

求兩個單向鍊錶的交點

題目 給出兩個單向鍊錶,判斷其是否有交點 如果存在交點,請找出交點 解題思路 如果存在交點,則兩個鍊錶的節點結構必定是同構的 如果存在交點,則兩個鍊錶必定程式y字形,而不可能是x形 如果存在交點,兩個鍊錶在交點及其之後的部分是一致的 這點很關鍵,一致的意思包括兩部分 長度和內容。基於以上三點,可以給...