标签:多表 name 连接 --- MYSQL JOIN WHERE id SELECT
/*
1 子查询
2 内连接
4 右连接
5 全连接连接
3 左连接
6 交叉连接
7 自连接
*/
– 子查询效率没有连接查询高 ,能用连接查询的,就尽量不要用子查询
SELECT c_name FROM class WHERE c_id =(SELECT c_id FROM student WHERE s_name =‘张三2’);
– 连接查询
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
FROM a,b WHERE a.a_id
=b.b_id
;
– 内连接
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
FROM a JOIN b ON a.a_id
=b.b_id
WHERE b_name=‘aa’;
– 左连接
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
FROM a LEFT JOIN b ON a.a_id
=b.b_id
– 右连接
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
FROM a RIGHT JOIN b ON a.a_id
=b.b_id
;
– 全连接 mysql 不支持 ,但是可以用其他的方式来实现
– select a.a_id
,a.a_name
,b.b_id
,b.b_name
from a full join b on a.a_id
=b.b_id
;
SELECT a_id FROM a
UNION ALL
SELECT b_id FROM b;
– mysql中全连接
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
FROM a LEFT JOIN b ON a.a_id
=b.b_id
UNION
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
FROM a RIGHT JOIN b ON a.a_id
=b.b_id
;
– 交叉连接
select * from emp,dept where emp.d_id
= dept.d_id
and emp.e_name
=“张三”;;
– 自连接
– 电器下面的子分类
select * from category where p_id =
(select a_id from category where c_name=“电器”);
– 两张表以上联查
方式一
SELECT a.a_id
,a.a_name
,b.b_id
,b.b_name
,c…c_id FROM a,b,c WHERE a.a_id
=b.b_id
and b.b_id=c.c_id;
方式二
SELECT A.,B.,C.*
FROM A
inner join B on A.a_id=B.b_id
inner join C on B.b_id=C.c_id
where
group by
having
order by
limit
注意 a.id b_id c_id 一般是主外键的 关系。
标签:多表,name,连接,---,MYSQL,JOIN,WHERE,id,SELECT 来源: https://blog.csdn.net/weixin_47580822/article/details/112777335
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。