
sql多表关联查询跟条件查询大同小异,主要是要知道表与表之前的关系很重要;
举例说明:(某数据库中有3张表分别为:userinfo,dep,sex)
userinfo(用户信息表)表中有三个字段分别为:user_di(用户编号),user_name(用户姓名),user_dep(用户部门) 。(关系说明:userinfo表中的user_dep字段和dep表中的dep_id字段为主外键关系,userinfo表中的user_sex字段和sex表中的sex_id字段为主外键关系)
dep(部门表)表中有两个字段分别为:dep_id(部门编号),dep_name(部门名称)。(主键说明:dep_id为主键)
sex(性别表)表中有两个字段分别为:sex_id(性别编号),sex_name(性别名称)。(主键说明:sex_id为主键)
一,两张表关键查询
1、在userinfo(用户信息表)中显示每一个用户属于哪一个部门。sql语句为:
select userinfouser_di,userinfouser_name,dep_name from userinfo,dep where userinfouser_dep=depdep_id
2、在userinfo(用户信息表)中显示每一个用户的性别。sql语句为:
select userinfouser_di,userinfouser_name,sexsex_name from userinfo,sex where userinfouser_sex=sexsex_id
二、多张表关键查询
最初查询出来的userinfo(用户信息表)表中部门和性别都是以数字显示出来的,如果要想在一张表中将部门和性别都用汉字显示出来,需要将三张表同时关联查询才能实现。
sql语句为:
select userinfouser_di,userinfouser_name,depdep_name,sexsex_name from userinfo,dep,sex where userinfouser_dep=depdep_id and userinfouser_sex=sexsex_id
(多个条件用and关联)
oracle、db2:
select from tab where mod(col,10)=1sqlserver、mysql
select from tab where col%10=1where name='"+name+"' and number=''"+pwd+"
你这个name没有指定是那个表的
另外and后需要一个空格
另外+name+中的变量name,+pwd+的变量pwd是哪里来的?
如果依你这句话“邮编1=邮编2”那么地址1=地址2
那么把你的LIKE改了不就行了
或者你的意思是楼上说的,我就不用重复了
update table_name set 邮编1=邮编2 where 地址1 = 地址2;
以上就是关于sql语句2个表查询只匹配一次全部的内容,包括:sql语句2个表查询只匹配一次、SQL语句integer类型字段模糊匹配、SQL数据库中如何从3个表中查询出数据并进行条件匹配union能查询出所有表,但是不能用where指定条件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)