inner join(內連線,或等值連線):取得兩個表中存在連線匹配關係的記錄。
取得左表(table1)完全記錄,即是右表(table2)並無對應匹配記錄。
交叉連線,得到的結果是兩個表的乘積,即笛卡爾積
在資料庫中建立表1和表2,並各插入三行資料
表1: person
列名型別
personid
intfirstname
varchar
lastname
varchar
personid 是上表主鍵
表2: address
列名型別
addressid
intpersonid
intcity
varchar
state
varchar
addressid 是上表主鍵
要求:編寫乙個 sql 查詢,滿足條件:無論 person 是否有位址資訊,都需要基於上述兩表提供 person 的以下資訊:firstname, lastname, city, state
-- 建立表一
create table person_2 (personid int primary key, firstname varchar(20), lastname varchar(20));
-- 插入資料
insert into person_2 values (1, 'mingming', 'yao');
insert into person_2 values (2, 'changyi','he');
insert into person_2 values (3, 'didi','ou');
-- 建立表二
create table address (addressid int primary key, personid int, city varchar(20), state varchar(20));
-- 插入資料
insert into address values (1, 3,'beijing','haidian');
insert into address values (2, 2,'beijing','changping');
insert into address values (3, 1,'shenyan','heping');
-- 查詢
select person_2.firstname , person_2.lastname , address.city , address.state
from person_2
left join address
on person_2.personid = address.personid;
編寫乙個 sql 查詢,來刪除 email 表中所有重複的電子郵箱,重複的郵箱裡只保留 id 最小 的那個。
idemail
id 是這個表的主鍵。
delete
from email
where id not in(
select minid from
( select min(id) as minid
from email
group by email
) table_tmp
); select * from email;
MySQL 基礎 (三) 表聯結
3.聯結方式的區別和聯絡 4.例項 別名 alias 是乙個欄位或值的替換名,別名用as關鍵字賦予,mysql支援列別名,計算字段別名,表別名。使用別名可以縮短sql語句並在一條語句中多次使用相同的表。select column name as alias from table name selec...
MySQL 基礎 (三) 表聯結
一 mysql別名 使用mysql別名來提高查詢的可讀性。mysql支援兩種別名,稱為列別名和表別名。1.表別名 有時,列的名稱是一些表示式,使查詢的輸出很難理解。要給列乙個描述性名稱,可以使用列別名。用法 如果別名包含空格,則必須引用 select column 1 expression as d...
MySQL 基礎 (三) 表聯結
組合兩張表 難度 簡單 在資料庫中建立表一和表二,並插入三行資料 自己造 編寫乙個sql查詢,滿足條件 無論person是否有位址資訊,都要基於上述兩表提供的person的以下資訊 firstname,lastname,city,state 表1 person 其中personid是主鍵 列名 型別...