消息关闭
    暂无新消息!

mysql小白求帮助

问题作者 : 疯疯2017-08-26发布
3个表分别为a,b,c
表a的sfzh字段对应b的sfzh,查到表b内的sex,age,corp
表b的corp对应表c的corp,根据前面表b的corp查到表c的name,name按creationtime倒叙排列然后取第一条
需要查询显示表a全部字段,表b的sex,age ,表c的name

9个回答

︿ 1
SELECT a.pk_fappback,a.sfzh,b.cxb,b.age,GROUP_CONCAT(c.name)
FROM test_a  AS a LEFT JOIN test_b AS b ON a.sfzh=b.sfzh
LEFT JOIN test_c  AS c ON b.pk_corp=c.pk_corp 
GROUP BY pk_fappback

#表a:pk_fappback,sfzh
#表b:pk_person,cxb,sfzh,age,pk_corp
#表c:pk_corp,name
#表a的sfzh字段对应b的sfzh,查到表b内的sex,age,corp 
#表b的corp对应表c的corp,根据前面表b的corp查到表c的name,name按creationtime倒叙排列然后取第一条
#要查询显示表a全部字段,表b的sex,age ,表c的name





就是这样子的 对不对
︿ 1
SELECT a.*,b.sex,b.age,c.name
FROM a LEFT JOIN b ON a.sfzh=b.sfzh
LEFT JOIN c ON b.corp=c.name
ORDER BY c.creationtime DESC LIMIT 1
︿ 0
这样查每条记录的name存在多个记录的时候,怎么把name整合在一行里逗号隔开显示?
︿ 0
CONCAT(c.name1,',',c.name2) AS names 试试这样
concat()函数的用法网上可以查,或者查看mysql文档
︿ 0
SELECT CONCAT(c.name1,',',c.name2) AS NAMES
FROM c

像这样 将之前的c.name 替换成CONCAT(c.name1,',',c.name2) AS NAMES