两表关联查询SQL语句的,要怎么写?
companyId companyName contacts
1 腾讯科技 马化腾
2 微软公司 鲍威尔
3 新浪科技 小明
users表:
userId companyId userName userAge address
1 1 jack 23 上海
2 1 jack2 23 上海
3 2 jack3 23 上海
4 2 jack4 23 上海
5 3 jack5 23 上海
6 3 jack6 23 上海
表的 companyId已关联,要根据company表查询出companyId为1下的所有用户信息。 展开
1、创建测试表;
create table company(companyId number, companyName varchar2(20), contacts varchar2(20));
create table users(userId number, companyId number, userName varchar2(20), userAge number, address varchar2(20));
2、插入测试数据;
insert into company values (1,'腾讯科技','马化腾');
insert into company values (2,'微软公司','鲍威尔');
insert into company values (3,'新浪科技','小明' );
insert into users values (1,1,'jack',23 , '上海');
insert into users values (2,1,'jack2', 23, '上海');
insert into users values (3,2,'jack3', 23, '上海');
insert into users values (4,2,'jack4', 23, '上海');
insert into users values (5,3,'jack5', 23, '上海');
insert into users values (6,3,'jack6', 23, '上海');
3、查询表中数据;
select * from users;
4、编写sql,关联两张表;select * from users t , company b where t.companyid = b.companyid and t.companyid = 1;
select b.* from company表 a left join users表 b on a.companyId=b.companyId where a.companyName='腾讯科技' and a.contacts='马化腾'
其实 这样写 就可以哦 select b.* from company a left join users b on a.companyId=b.companyId where a.companyId=1 ;
我想请问,如果你知道了b的companyId=1
就不需要查a了,你这样写等于:
select * from users表 where companyId=1
何必要关联这么麻烦,反而消耗了不必要的内存
from users u,company c
where c.companyid=u.companyid
and c.companyid=1
2018-07-06 · 知道合伙人软件行家
知道合伙人软件行家
向TA提问 私信TA
select 客户,商品名称,单价,折扣
from 价格表 a
inner join 折扣表 b
on a.客户=b.客户 and a.商品名称=b.商品名称