MYSQL中有三種基本的集合操作,分別是并(union)、交(intersect)和差(except),本文主要講解交和差的使用。
先介紹交(intersect)操作,它是指兩個(gè)集合中相同的元素的集合。在MYSQL中,可以使用INNER JOIN關(guān)鍵字實(shí)現(xiàn)交操作。下面是一個(gè)簡(jiǎn)單的示例:
SELECT * FROM table1 INNER JOIN table2 ON table1.column = table2.column;
上面這個(gè)語(yǔ)句查詢(xún)了table1和table2兩個(gè)表中,column列中相同的數(shù)據(jù)。如果需要去重,可以使用DISTINCT關(guān)鍵字。
接下來(lái)是差(except)操作,它是指從第一個(gè)集合中去除與第二個(gè)集合相同的元素得到的集合。在MYSQL中,可以使用LEFT JOIN關(guān)鍵字實(shí)現(xiàn)差操作。下面是一個(gè)簡(jiǎn)單的示例:
SELECT * FROM table1 LEFT JOIN table2 ON table1.column = table2.column WHERE table2.column IS NULL;
上面這個(gè)語(yǔ)句查詢(xún)了table1中有而table2中沒(méi)有的數(shù)據(jù)。通過(guò)關(guān)鍵字WHERE table2.column IS NULL,篩選出table2中沒(méi)有對(duì)應(yīng)的元素。