在mysql中,可以在from關鍵字後面加入多個表,來一次查詢多個表,多個表之間使用逗號來隔開,此外還可以使用where條件子句來指定表與表之間的聯合條件。
現在建立一張pet表和owner表,分別代表寵物和它們的主人。
create table pet(id int(11) primary key auto_increment, name char(20), species char(20), owner_id int(11), constraint pet_ibfk_01 foreign key owner_id references owner (id))engine=innodb default charset=gbk;
create table owner(id int(11) primary key auto_increment, name char(20))engine=innodb default charset=gbk;
現在表owner中記錄如下
idname
1zhangsan
2lisi
表pet中記錄如下
idname
species
owner_id
1lili
cat1
2haha
dog2
3miaomiao
cat1
檢索出姓名為zhangsan的人擁有的寵物數目
select owner.name,count(owner_id) from owner, pet where owner.name='zhangsan' and owner.id=owner_id group by owner_id;
輸出結果:
name
owner_id
zhangsan2
mysql之簡單的多表查詢
最簡單的多表查詢需要用到連操作符 join 1.笛卡兒積 形式為table1 join table2.如 這是查出來的資料,裡面包括我們不需要的資料,如果只查詢需要的資料,需要採用內連線 2.內連線 只需要在上表中加入on和所需要相等的屬性即可。如 select e.fname,e.lname,d....
mysql多表 MySQL 多表查詢
多表查詢 select listname from tablename1,tablename2 笛卡爾積 多表查詢中,如果沒有連線條件,則會產生笛卡爾積 數學中的定義 假設集合a 集合b 則兩個集合的笛卡爾積為 實際執行環境下,應避免使用笛卡爾積 解決方案 在where加入有效的連線條件 等值連線 ...
mysql多表查詢方式 MySQL多表查詢方式問題
你的 sql 沒有用到任何索引,對 a b 兩個表都是全表掃瞄,在資料量小的時候是沒有問題的,但是如果資料量超過 100 萬,效能問題就會突顯出來。這裡不清楚你的 created at 欄位是什麼型別,不過從你的 date format created at,y m d 看來,應該是 datetim...