mysql两张表查询 多个字段 怎么查询

假如两个表 一个是用户表一个是城市表

City表(所有的省市区都存在一个表里面 通过upid来区分省市区)

id name upid
1 四川省 0
2 成都市 1
3 金牛区 2

然而用户表user中的字段里有

uid name province city district
1 测试 1 2 3

用户表中province city district对应的就是City表的id序号

那么我查询用户表的时候如何输出

1 测试 四川省 成都市 金牛区

3个回答

你的upid,province,city,district字段都是int型的吧,如果upid是按0表示省,1表示市,2表示区的话
select uid,name,
(select name from city c where c.id = u.province and c.upid = 0),
(select name from city c where c.id = u.city and c.upid = 1),
(select name from city c where c.id = u.district and c.upid = 2)
from user u
图片说明

Select user.name,
(Select City.name as province from City where id=user.province),
(Select City.name as city from City where id=user.city),
(Select City.name as district from City where id=user.district)
From user

通过两张表的关联字段查,要不给张中间表,要不给个关联字段

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mysql两张表查询
有两张表rn第一张表order_db.t_relation_group_merchantidrn[b]id name pay_channel[/b]rn3 weixinGroup2 SZ_CMBC rn3 weixinGroup2 SZ_CMBC rn3 weixinGroup2 SZ_PAB rn3 weixinGroup2 SZ_CMBC rn3 weixinGroup2 SZ_PAB rn3 weixinGroup2 SZ_PAB rn4 weixinGroup3 SZ_PAB rn5 weixinGroup5 SZ_PAB rn5 weixinGroup5 SZ_PAB rnrn第二张表 user_db.t_upay_group_attributern[b]id name platform state[/b] rn3 weixinGroup2 0 1rn4 weixinGroup3 0 1rn5 weixinGroup5 0 1rn6 weixin 0 1rnrn现在要打印出第二张表的id , name,platform 和这个id在第一张表中出现的次数。重点是出现0次的也要打印。请问这个查询语句要怎么写?谢谢!!!!!rn结果如下rnid name platform countrn3 weixinGroup2 0 6rn4 weixinGroup3 0 1rn5 weixinGroup5 0 2rn6 weixin 0 0
mysql查询两张表
有两张表:(devices和organization)rndevices主要有以下几个字段(title、description、coding...)rnorganization主要有以下几个字段(coding、orgname...)rn问题:通过coding字段查询列出title、description、orgname三个字段的参数
查询两张表不同字段
##在Oracle中查询两张表中的不同字段 #使用系统表all_col_comments #基本思路是,先查出相同字段,然后使用 not in –查询两张表的不同字段名 oracle select column_name from all_col_comments where table_name in (table_a,table_b) and owner=owner_1 and column_...
查询两张表
有两张表,如rn表1rn学号 姓名 性别 年龄rn01 张三 男 16rn02 李四 女 15rn。。 。。 。。 。。rn表二rn顺号 姓名 科目 期中 期末 成绩rn1 张三 数学 90 88 88rn2 张三 语文 95 89 91rn3 李四 英语 93 91 92rn4 李四 数学 88 92 89rn。。 。。 。。 。。rn想要的结果,rn学号 姓名 性别 年龄 rn1 张三 男 16rn科目 期中 期末 成绩rn数学 90 88 88rn语文 95 89 91rn。。 。。 。。 。。rnrnrn是否可以写一个数据窗口中,因为要打印rnrnrn
两张表查询的问题
有两张表数据库结构相同 记录不同rnrn现在要取两张表记录的交集 对相同ID的记录进行 字段相加rnrn例 A表rnrn ID numrnrn 1 33.3rn 2 44.4rn 3 55.5rnrn B表rnrn ID numrnrn 1 66.6rn 3 77.7rn 4 88.8rnrn得到的结果rnrn ID nummrnrn 1 99.9rn 3 133.2rnrnrn怎么查询出来 请指点
两张表查询问题
有表A如下:rndname descriptionrnname:11;name13 2rn表B:rnnametype namedescriptionrnname:05 北京05店rnname:11 湖北11店rn name:13 湖北13店rn查询显示为如下结果如何处理:rndname descriptionrn湖北11店;湖北13店 2
HQL两张表查询
select count(*) from Video v, Collectlist c where v.videoId=c.videoID and c.userID=2这条语句有问题吗?rnVideo表内videoID是主键,Collectlist里videoID,userID是外键,查询Collectlist表里用户ID为2的所有Video属性信息,rn在Query query = getSession().createQuery(hql);处报错,报错的信息说could not resolve property: userID of: com.coe.entity.Collectlistrnrn试了select count(*) from Video v, Collectlist c where v.videoId=c.getVideo().videoID and c.getUser().userID=2,也还是在Query query = getSession().createQuery(hql);报错,不过报错是10:21:30,356 ERROR PARSER:33 - :1:101: unexpected AST node: (rnjava.lang.NullPointerExceptionrnrnrn这两条语句有什么问题吗?
sql 两张表查询?
现有两张表rnrn计划表rnid name 计划金额rn1 A 100rn2 B 100rnrn实际表rnid name 实际金额rn1 A 90rn2 C 80rnrn现要得到rn计划分析表rnname 计划金额 实际金额 计划完成度rn A 100 90 90%rn B 100 rn C 80 rnrnSQL语句怎么写啊????
SQL查询两张表~~~~~~~~~~~
目前是两张表,没有外键,一个是订单主表,一个是明细表,关联关系为两个字段关联的,sql怎么写呢,目前我是在控制层,利用两个字段先去主表查,获取单条记录,再利用这两个字段去明细表查,多条,这是分开查,听说这样总是数据连接,不好,那怎么用sql查询两张表呢,持久层,我用的mybatis,看到的大神,帮忙处理下,谢谢!
collection 两张表查询
场景: 两张表:学生基础信息表A,学生成绩表B,两张表通过userId关联 返回结果:以学生为维度返回列表,学生有一个外部属性:成绩列表 语文 100 张三 u001 成绩 数学 99 英语 88 李四 u002 成绩 语文 66 数学 77 英语 99 王五 u003 成绩 语文 22 数学 55 英语 33 Mapper.xml
查询两张表中的字段,在线等
有两张表 A,BrnrnA中的字段是rnID ,B_C_ID, B_D_IDrnB中的字段是rnID ,NAMErnrnA中后两字字段都是关联B的主键ID的rnrn我想查询出B中的namernrnA表中都要查询出来rnrn应该怎么查询?
sql 查询两张表的字段信息
现在有两张表,一张为学生信息表Student(Code,Name),另外一张表为考试信息表 Exam(Code,Subject,Score) Code Name Code Subject Score 001 张三 001 语文 80 002 李四 ...
MySql 查询两张表的数据差别
select * from tb_a A where A.ID NOT IN(select B.ID from tb_b B ); select * from tb_a A where NOT EXISTS (select 1 from tb_b B where A.ID = B.ID);  
ODBC 查询MySQL两张表速度好慢
我用MySQL建立了两张表,第一张是客户信息,第二张是登陆信息,其中[b]第二张表引用了第一张表的客户ID号。我现在需要查询第二张表的所有信息,但是我想显示客户名称而不是客户ID号[/b],为此我先获取第二张表的所有信息,包括客户ID号,再根据这个客户ID号获取第一张表的客户名称,我使用ODBC链接,发现获取客户名称非常耗时(如下),不知道应该怎样查询才是合理的?rnrn查询客户名称耗时:11250msrn查询客户名称耗时:171msrn查询客户名称耗时:657msrn查询客户名称耗时:640msrn查询客户名称耗时:532msrn查询客户名称耗时:281msrn查询客户名称耗时:78msrn查询客户名称耗时:62msrn查询客户名称耗时:79msrn查询客户名称耗时:63msrn查询客户名称耗时:78msrn查询客户名称耗时:62msrn查询客户名称耗时:78msrn查询客户名称耗时:79msrn查询客户名称耗时:62msrn查询客户名称耗时:62msrn查询客户名称耗时:78msrn查询客户名称耗时:63msrn查询客户名称耗时:78msrn查询客户名称耗时:78msrn查询客户名称耗时:78msrn查询客户名称耗时:63msrn查询客户名称耗时:78msrn查询客户名称耗时:94msrn查询客户名称耗时:156msrn查询客户名称耗时:219msrn查询客户名称耗时:234msrn查询客户名称耗时:234msrn查询客户名称耗时:250msrn查询客户名称耗时:266msrn查询客户名称耗时:234msrn查询客户名称耗时:282msrn查询客户名称耗时:281msrn查询客户名称耗时:297msrn查询客户名称耗时:312msrn查询客户名称耗时:360msrn查询客户名称耗时:343msrn查询客户名称耗时:344msrn查询客户名称耗时:281msrn查询客户名称耗时:422msrn查询客户名称耗时:375msrn查询客户名称耗时:110msrn查询客户名称耗时:78msrn查询客户名称耗时:78ms
mysql sql 从两张表查询
[code="java"] select channel.fk_cps_media as mid, channel.pk_cps_channel as cid, position.pk_cps_position as pid from t_cps_channel as channel INNER JOIN t_cps_position as position ON channel.pk_cps...
mysql update 更新两张表的查询结果
UPDATE `table1` INNER JOIN table2 ON  table2.Id =`table1`.table2Id SET `table1`.name=table2.name WHERE `table1`.age == '12' and `table1`.age == '31'
mysql关于两张表查询的问题
我现在有两张表n iislogn ![图片说明](https://img-ask.csdn.net/upload/201507/30/1438247249_22812.png)n ips_globaln ![图片说明](https://img-ask.csdn.net/upload/201507/30/1438247241_432909.jpg)n n 想根据iislog表查询出来的IP地址,得出对应的归属地,请问这语句该怎么写啊?
MySQL查询之字段查询
本教程从基础的MySQL开始介绍,到SQLServer,然后Oracle,让学员能够从易到难,从Java或PHP语言到.Net数据库的灵活使用。其中分库介绍了,各个数据库的基本独立使用,以及各自的安装和配置。课程中主要是以SQL脚本为基础同时介绍非常实用性的脚本使用。例如:层次化查询,正则表达式以及技巧性函数等等。
两张表查询 插入 怎么写
[code=SQL]rnrncreate table S1(pname nvarchar(10),amt decimal(18,1))rnrninsert into S1 (pname,amt) values ('01',10)rninsert into S1 (pname,amt) values ('01',20)rninsert into S1 (pname,amt) values ('02',30)rninsert into S1 (pname,amt) values ('01',40)rninsert into S1 (pname,amt) values ('05',40)rninsert into S1 (pname,amt) values ('05',40)rnrncreate table S2(pname nvarchar(10),paid decimal(18,1))rnrninsert into S2 (pname,paid ) values ('01',10)rninsert into S2 (pname,paid ) values ('02',20)rninsert into S2 (pname,paid ) values ('02',30)rninsert into S2 (pname,paid ) values ('03',40)rninsert into S2 (pname,paid ) values ('04',40)rnrncreate table S3(pname nvarchar(10),amt decimal(18,1),paid decimal(18,1))rnrnrnrn查询S1与S2然后 结果写入 S3rnrnpname amt paid rn01 70 10rn02 30 50rn03 0 40rn04 0 40rn05 80 0[/code]rnrnS3显示所有的PNAME,如果S1或者S2中没有,相应的数据为0。因为S1与S2是变化的 所有S1与S2中的PNAME 是不确定的
两张表的查询,求指点!!!!!!
本人非数据库专业rn查询的东西很简单rnrn有两张表rna brn单号,姓名。。。 单号,姓名。。。rnrn两张表单号都是唯一的,不会重复,也不会互相重复rn姓名是会重复,b有的人a肯定会有,a有的b[color=#FF0000]不[/color]一定会有rnrn要查询出rn姓名,count(a.单号) 正常单数,isnull(count(b.单号),0) 异常单数rngroup by 姓名rn就比说有查询出姓名为小王在a表中有143条记录,在b中有21条记录,小丽在a表中有76条,b中有0条rn那么查询出的结果就是rn小王,143,21rn小丽,76,0rnrn求select语句啊!!rnrn[color=#FF0000]关键是要语句的效率,因为数据比较大,所以求专业人事指点!!!![/color]
两张表的SQL查询问题?
我碰到一个头疼的数据库,其中用到的两个表,一个是基本信息表“JBXX”里面有字段-编号“BH”和商品名称“MC”等,主键为“BH”。另一个是销售额表,不知是哪个混蛋做的,字段是“BH”和月销售额“XSE”以及销售所属月份“RF”,是字符型,比如2003年3月就写为“2003.03”,未定义主键,查起来复杂之极,比如要找2002年的一种商品的销售额那就要查出12条记录来,我现在要把一年的该商品的详细信息和每月的销售额及年销售额做在一个窗体内,然后再导入水晶报表,好象不太好搞,用一条语句可以查出来吗,大家帮忙看看rn
查询两张表的问题,急!
现在有personallowance persondossier两张表分别有 name,no1 time1 和name,no2,time2 这几个字段,现在要通过查询name 输出两张表的内容,no1和no2 在同一列显示 time1和time2 在同一列显示,查询语句跟 显示no和time的语句怎么写!!
sql两张表查询的问题
两个表rna表 b 表rnid name id cid namern4 xx 1 4 x1rn 2 4 x2rnrnrnrn我想查询到b表所有结果怎么查?rn
查询两张表的不同纪录
有两张结构相同的表,我想列出两张表不同的纪录,该如何写sql语句??rnrn表结构rn类型 字段rnint d_idrnvarchar d_depnamernrn我想列出d_depname不同纪录?请帮忙!!!!!!!!!!!
合并两张表,LIMIT 查询
比如我有两张表,rn arnid name sexrn1 哈哈 1rn2 胡拉拉 2rnrnrn brntid lastname titilern1 最后 我也知道rn2 第一个 合并rnrn我想合并 两张表。。最后结果:rnname = lastnamernrn crnn t id sexrn哈哈 null 1 1rn胡拉拉 null 2 2rn最后 我也知道 1 nullrn第一个 合并 2 nullrnrnrnrn需要用 LIMIT 分页rn可有办法实现?~~~rn求各位高手。大侠。。指导小弟~~~
发货、收款两张表查询
表一,(发货记录):id,ccode,ddate,imount,cmenorn表二,(来款记录):did,ccode,dregdate,idmount,cdigestrn两个表没有关联,rn想要根据ccode查询显示出:rnccode,ddate,dregdate,imount,idmountrn不要合并,一条记录就显示一行,没有的字rn段就空着, rnrn想要的结果是这样的rnccode ddate dregdate imount cmeno idmount cdigestrnah001 2009-8-10 5000 发货rnah001 2009-8-11 1000 发货rnah001 2009-8-12 1000 收款rnah001 2009-8-13 800 发货rnah001 2009-8-16 3000 收款rn
新手求教:两张表查询
有表A 字段a,brn 表B 字段c,drn求一SQL找出A.a不存在与B.c中或A.b不存在B.d中
sql 两张表之间的查询
表A:rnA_ID A_Name rn1 张三 rn2 李四 rnrnrn表B:rnB_ID A_ID B_Name B_UsageExperiencern1 1 Java 18rn2 1 MySql 10rn3 2 C# 20rn4 2 MsSql 15rn5 1 Oracle 6rnrn我想根据这两张表得到一下结果:rnT_Result:rnName Skillrn张三 Java/18,MySql/10,Oracle/6rn李四 C#/20,MsSql/15rnrn
求两张表查询的语句
两张表abl、tbl,结构相同(A、B、C、D列),各有大约170万条数据,有何语句能查出这两张表的A、B两列不相同的条目?
查询两张表中的数据
我有两张表 rna表(主要放文章) 有 id bt nr 字段rnb表 (放留言) 有 id wid lyrnb表的wid 对应a表的idrnrn用两个Repeater嵌套分别显示出了,文章和留言,可是不出知道,怎么显示当前一文章的总数。rn请高手告诉一下方法,刚学asp.net全是问题。 怎么实现,是用sql语句还是别的?rn现在作的,就这个功能了,这是网址[url=http://www.lin10.com][/url].
sql server 两张表查询
![图片说明](https://img-ask.csdn.net/upload/201702/19/1487505984_417570.png)rn如图求帮助rn1 查询成绩前三名的姓名rn2 查询小王的平均成绩rn3 查询小张的班级名称rn4 查询每个班的人数,结果是三班2人,四班3人
关于两张表查询问题
A表rnid name fidrn1 name1 1rn2 name2 1rnrnrnB表rnfid fname rn1 fname1rn2 fname2rn3 fname3rnrn现在我想得出的结果是rnid name fid fnamern1 name1 1 fname1rn2 name2 1 fname1rnNULL NULL 1 fnmae1rnNULL NULL 2 fname2rnNULL NULL 3 fname3rnrnfid是外键rn我的SQL这样写rn SELECT * FROM A RIGHT JOIN B ON A.fid=B.fidrnrn结果只得出rn1 name1 1 fname1rn2 name2 1 fname1rnNULL NULL 2 fname2rnNULL NULL 3 fname3rnrn而我希望的结果是这样子..哪位高手帮忙写下SQL语句..rn1 name1 1 fname1rn2 name2 1 fname1rnNULL NULL 1 fnmae1rnNULL NULL 2 fname2rnNULL NULL 3 fname3
两张表查询问题,谢谢
a表rn字段:订单号,产品信息rnb表rn字段,订单号,流程状态rnrn我想显示a表里的订单号等于B表里的订单号,并且该“流程状态”为“1”的订单号的的产品信息。rn 谢谢大家了
求两张表查询问题?
现有两张表 rnA表(SMS_ID 主键)如下数据:rnrnSMS_ID NOTES_ID MOBILE ADDRESSEE CONTENTrn391 bailaxiusx 13734039384 赵六 早上 rn397 bailaxiusx 13734039384 李四 你好rn418 bailaxiusx 13012345679 世界rn513 tangshuyao 13734039387 张三 rn.......... rnrnb表(RECEIVESMS_ID 主键) 如下数据:rnrnRECEIVESMS_ID NOTES_ID MOBILE ADDRESSEE CONTENTrn83 bailaxiusx 13734039384 AArn100 bailaxiusx 13734039384 赵六 BBrn101 tangshuyao 13734039384 CCrn102 fenjunjie 13734039384 DD rn......rn rn--------找出 NOTES_ID ='bailaxiusx' MOBILE='13734039384' 结果如下:rnrnrnSMS_ID RECEIVESMS_ID NOTES_ID MOBILE ADDRESSEE CONTENTrn391 bailaxiusx 13734039384 李四 早上 rn397 bailaxiusx 13734039384 李四 你好rn 83 bailaxiusx 13734039384 AArn 100 bailaxiusx 13734039384 赵六 rnrnrnrn
关于两张表之间查询
表一库存rn A、990rn B、1200rn rn 表二取出rn A、99rn A、89rn B、77rn B、109rn查询两张表之间A 和 B 之间剩余多少库存?rn请问大家该怎么写?
如何同时查询两张表
首先,本人对程序基本不懂所以请不要嫌我啰嗦哦。 rnrn有两张房产类的表,house 和 gongsi rnhouse表中有:fangwei jyprice userid ……等字段 rngongsi表中有:userid ,reg_type ……等字段 rn其中两个表中的 userid字段内容是关联的。 reg_type 有三个值为:空值,0,1 rnrn程序原来只要调用house中的内容: rn原来写的内容是: rn上面的部分为: rn<% rnset rs=server.createobject("adodb.recordset") rnSql="select top 30 * from house where sh='1' and xxlb='1' and tj='1' order by dateandtime desc" rnRs.Open Sql,Conn,1,1 rnDo While Not Rs.Eof rn %> rn中间的具体显示内容为(部分): rn <%=left(rs("fangwei"),15)%> rn <%=rs("jyprice") rn底部就是: rn<% rnRs.MoveNext rnLoop rnRs.Close rn%> rnrn由于本人不太懂程序只能看着猜测,我猜测就是上面一部分是开启数据库链接中间是调用数据里的内容的,后面就是关闭的。 rnrn原来就是把userid对应reg_type字段对应的所有值的house数据调出来的。 rnrn现在要求把userid对应reg_type字段对应值为0 和1 和空的house表中的内容分别调出来,也就是比原来更详细了。 rn改怎么写啊?请高手赐教啊。详细点啊! rn
查询两张表的一个常见问题
表一:rnID UserID GetNurn1 9002 22rn2 9013 26rn3 9024 30rn4 9035 34rn5 9046 38rn6 9057 42rnrn表二:rnID Name rn9002 peter rn9013 andy rn9024 picc rn9035 fish rn9046 Ginobil rn9057 Kobe rnrn目标:rnID UserID GetNu Namern1 9002 22 peterrn2 9013 26 andyrn3 9024 30 piccrn4 9035 34 fishrn5 9046 38 Ginobilrn6 9057 42 Kobernrn附件:rnrn麻烦大家了。rnrn
关于两张表的查询 求解
把两张表里相同的项求和插入第3张表,如没有相同的项分别插入第3张表。rn名称 数量 Arnname numrna 1rnb 2rnrn名称 数量 Brnname numrna 1rnc 2rnrnname numrna 2rnb 2rnc 2rnrnfor (int a = 0; a < bpdt.Rows.Count; a++)rn rn for (int b = 0; b < bzdt.Rows.Count; b++)rn rn if (((bpdt.Rows[a]["部品部番"].ToString() == bzdt.Rows[b]["部品部番"].ToString()) && (bpdt.Rows[a]["部门"].ToString() == bzdt.Rows[b]["部门"].ToString()) && (bpdt.Rows[a]["品质状况"].ToString() == bzdt.Rows[b]["品质状况"].ToString()) && (bpdt.Rows[a]["date1"].ToString() == bzdt.Rows[b]["date1"].ToString())) == true)rn rn number = Convert.ToInt32(bpdt.Rows[a]["数量"].ToString()) + Convert.ToInt32(bzdt.Rows[b]["部品数量"].ToString());rn sl = number.ToString();rn string sqlstr = "insert into 部品部组合计 (机种,部品部番,数量,部门,品质状况,date1)values('" + bzdt.Rows[a]["机种"] + "','" + bzdt.Rows[a]["部品部番"] + "','" + sl + "','" + bpdt.Rows[a]["部门"] + "','" + bpdt.Rows[a]["品质状况"] + "','" + Date + "')";rn Fpara.SqlCmd(sqlstr, Fpara.connStr);rn break;rn rn rn rnrn这是我程序的具体代码,我现在能把相同的项求和,就是不会实现不同的项分别插入第3张表。rn求高手解答一下这个for循环哪里有欠缺。rn
两张表合为一张表查询
引用块内容 select title,C_TIME from notice_list union select WX_TITLE,C_TIME from message_content order by c_time desc; select @rownum:=@rownum+1 AS ID ,a.* from (SELECT @rownum:=0) r ,(select URL WX_DETAI
mysql查询一张表的所有字段和备注
mysql查询一张表的字段和备注 SELECT COLUMN_NAME AS name,if( COLUMN_COMMENT is null or COLUMN_COMMENT='', COLUMN_NAME, COLUMN_COMMENT) AS namecn FROM information_schema.COLUMNS WHERE TABLE_NAME='表名' ...
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法