Mysql基本用法-left join、right join、 inner join、子查询和join-02
?left join #左連接又叫外連接 left join 返回左表中所有記錄和右表中連接字段相等的記錄?
?
- test_user表
- phpcvs表
SQL: select * from test_user left join phpcvs on test_user.id=phpcvs.id
執行結果如下圖:
?
?
?
?right join #右連接又叫外連接 right?join返回右表中所有記錄和左表中連接字段相等的記錄??
SQL: select * from test_user right join phpcvs on test_user.id=phpcvs.id
執行結果如下圖:?
? (*?這里執行結果只有一條數據是因為right join的時候phpcvs表里只有一條數據。)
?
?inner join #等值連接又叫內鏈接 inner join 只返回兩個表中連接字段相等的行?
?
SQL: select * from test_user inner join phpcvs on test_user.id=phpcvs.id
執行結果如下圖:
(* 這里返回兩個表中字段相等的值,所以只會有一條數據)
?
?
?
?子查詢 和 JOIN?
- 子查詢
SQL: select * from test_user where id not in (select id from phpcvs)
?
- JOIN
SQL: select test_user.* from test_user left join phpcvs on test_user.id=phpcvs.id where phpcvs.id is null
* 子查詢 和 JOIN 在數據量少的情況下感覺兩種情況的執行時間都差不多。有時候子查詢還會比用JOIN要快。
* 連接(JOIN).. 更有效率一些,是因為 MySQL不需要在內存中創建臨時表來完成這個邏輯上的需要兩個步驟的查詢工作。
轉載于:https://www.cnblogs.com/xy404/p/3709330.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Mysql基本用法-left join、right join、 inner join、子查询和join-02的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 贴一个CMemDC 代码,这东西真不错噢
- 下一篇: Android开源项目分包方式学习(eo