1. 程式人生 > >mysql 表連線//及any in exists

mysql 表連線//及any in exists

內連結:

select * from tableA inner join tableB on tableA.列=tableB.列

外連線:(笛卡兒積)

select * from tableA full join tableB on tableA.列=tableB.列

左連線:

select * from tableA left join tableB on tableA.列=tableB.列

右連線:

select * from tableA right join tableB on tableA.列=tableB.列

自然連線:(和 inner join 相似,但是去除了重複)

select * from tableA natural join tableB on tableA.列=tableB.列

子查詢:

where  後面跟一個查詢語句做判斷條件

 

in (not  in):匹配子集中任意一個元素

SELECT count(*) FROM world.country where Name IN (SELECT Name FROM world.country where Name like "C%");

ALL :

val>ALL(subset):表示val比subset中每一個元素都大 
val<>ALL(subset):表示val不在subset中,等效於NOT IN (subset)

ANY:

val=ANY(subset):表示val等於subnet子集中的任何一個元素皆可,等同於val IN (subnet) 
val>ANY(subnet):表示val比subnet中最小的元素大即可

EXISIS:

因為select語句先執行where條件後的語句,再篩選欄位,當執行完where條件後,若這條結果集存在,則where表示式後面永遠都是true,否則為false。也就是說要麼查詢所有,要麼沒有資料。那麼我只想查校友id,為6588的校友,使用exists該怎麼寫,經過一番測試,內查詢中的id,必須為外查詢的id,即SELECT * FROM alumni_info t WHERE EXISTS(SELECT a_id FROM alumni_education e WHERE t.id_='6588' )