MySQL基礎(三) 表聯結

2021-09-11 18:46:47 字數 1745 閱讀 2585

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

[email protected]

[email protected]

[email protected]

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是主鍵 列名 型別...