mysql语句的左外链接_MySQL中的JOIN连接
一、新手 1+N ?模式查詢
題目: ?查詢價格大于 2000 元的商品及其欄目名稱
1. ?價格大于 2000 元的商品
select?goods_id,goods_name,cat_id,shop_price?from?goods?where?shop_price>2000;
2.?sql 執行之后 , 循環取出 cat_id;
$sql?=?'select?goods_id,goods_name,cat_id,shop_price?from?goods?where?shop_price>2000';
$rs?=?mysql_query($sql);
$data?=?array();
while($row?=?mysql_fetch_assoc($rs))?{
$data[]?=?$row;
}
foreach?($data?as?$key?=>?$value)?{
$sql?=?'select?cat_name?from?category?where?cat_id='.$v['cat_id'];
}
//?一條sql語句?->?N條數據?->?N條查詢
我們需要一條 sql 語句查詢出來 , 那有沒有可能從一張表中就能查出來 ? 不可能 , 查詢的字段是分別在兩張表中的 , 肯定需要從兩張表中查詢出來 -> ?連接查詢
二、內連接查詢
左邊的表的每一行 , 都有一次機會跟右邊表去試圖連接,不過能不能連接上是有條件的
select?boy.hid,boy.bname,girl.hid,girl.gname
from?boy?inner?join?girl
on?boy.hid=girl.hid;
#?內鏈接為左右連接的并集
#?那有沒有左右連接的交集?,?并集是外連接,mysql?中不支持外連接?,oracle?和?sql?server?可以
三、左連接及右連接查詢
左連接和右連接類似 , 只是調個方向
1. ? 左連接,所有男士站出來 , 找到自己的另一半 , 沒有的 , 以 NULL 補齊
select?boy.hid,boy.bname,girl.hid,girl.gname
from?boy?left?join?girl
on?boy.hid=girl.hid;
#?左連接的特點?:
#?左表所有的數據全部取出來?,?然后到對應的右表去找數據?,?如果找不到數據?,?補?null
2. ?右連接 , 以右表為準 , 全部取出
select?boy.hid,boy.bname,girl.hid,girl.gname
from?boy?right?join?girl
on?boy.hid=girl.hid;
連接查詢 , 通過 on 將兩張表打通一個橋梁 , 拼接成一張大表,既然是一張大表 , 我們后面是不是可以跟著寫那 5 個子句 where group by ...
總結
以上是生活随笔為你收集整理的mysql语句的左外链接_MySQL中的JOIN连接的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 查询指定字段数据_MySQL
- 下一篇: linux cmake编译源码,linu