mysql:左連接、內連接、in()語句以及對比
阿新 • • 發佈:2018-10-19
left 使用 ner 一個 having null 推薦 而不是 引號
左連接:
格式:
select 列1,列2,列N from
tableA left join tableB
on tableA.列 = tableB.列(正常是一個外鍵列) [此處表連接成一張大表,完全當成一張普通表看]
where,having,group by …照常寫。
理解:
左連接:即以左表為基準,到右表找匹配的數據,找不到匹配的用NULL補齊。
右連接和左連接類似,不再贅述,更加推薦左連接。
內連接:
select 列1,列2,列N from
tableA inner join tableB
on tableA.列 = tableB.列(正常是一個外鍵列) [此處表連接成一張大表,完全當成一張普通表看]
where,having,group by …照常寫。
理解:
內連接:查詢左右表都有的數據,不要左/右中NULL的那一部分
內連接是左右連接的交集。
in語句:
1、in 後面是記錄集,如:
select * from table where uname in(select uname from user);
2、in 後面是字符串,如:
select * from table where uname in(‘aaa’,bbb’,’ccc’,’ddd’,’eee’,ffff”);
註意:這裏一定要將字符串用單引號” 標註起來;
我們在查詢的時候,一般來講是左連接的效率比較高,推薦使用左連接
而不是in語句。
但是也是會有特殊的情況。需要放到實際業務場景來看待。
mysql:左連接、內連接、in()語句以及對比