在论坛里看到这样一个问题:
我有两个表,MemberInfo (MemberName,ProvinceID,CapitalID,CityID) ,
MemberName,ProvinceID,CapitalID,CityID
张三 1000 1001 1002
CityInfo(CityID,CityName)
1000 湖北省
1001 武汉市
1002 江汉区
其中用户表里的省份 城市ID 等对应CiityInfo里的ID
现在我要输出这样格式的数据,请问SQL怎么写?
姓名 省份 地区 县级市
张三 湖北省 武汉市 江汉区
实现方式:
SELECT M.MemberName AS '姓名', K.CityName AS '省份', F.CityName AS '地区', C.CityName AS '县级市'
FROM MemberInfo AS M LEFT OUTER JOIN
CityInfo AS K ON M.ProvinceID = K.CityID LEFT OUTER JOIN
CityInfo AS F ON M.CapitalID = F.CityID LEFT OUTER JOIN
CityInfo AS C ON M.CityID = C.CityID--子查询的方式
SELECT F.MemberName,(SELECT Cityname FROM CityInfo WHERE CityID= F.ProvinceID) AS 省份,
(SELECT Cityname FROM CityInfo WHERE CityID= F.CapitalID) AS 地区,
(SELECT Cityname FROM CityInfo WHERE CityID= F.CityID) AS 县级市
FROM MemberInfo F
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15042150/viewspace-504573/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15042150/viewspace-504573/