日期:2014-05-20  浏览次数:20815 次

求帮助,这个SQL联合查询怎么写~~~~~~~~~~~~~
本帖最后由 xzs7190966 于 2013-01-08 16:56:27 编辑
项目表


用户表



项目表里的第2,3,4列里的id都是对应用户表里的用户id
  
我现在想通过一条SQL语句   一次查询出一个项目三个用户的用户名和这个项目的相关信息 已知条件是项目表三个ID中的一个


求帮助 刚刚上班这个就把我难住了
sql

------解决方案--------------------
连接查询
我上班的第一天也是遇到这样的问题。
好久没解决,最终找师傅帮忙解决的。。
提供给你一个例子吧。我想有了例子你能照着改,对么?
如果没改出来,引用一下留言,我晚上回去帮你写。
例子如下:

品牌     分类   产品编号   规格        尺码       条形码  库位               市场价          进货价             销售价格            是否套装         厂家货号    品名   重量             库存数量 图片地址            产品简介    
select b.brandname,i.genre,isku.mjid,c.colorname,s.sizename,isku.sku,'null' as location,isku.fixedprice,isku.price inprice,isku.price outprice,'true' as suit,i.makercode,i.name,'null' as weight,isku.stock,'true' as image,i.description
from itemsku isku
left join item i on isku.mjid=i.mjid
left join brand b on isku.mjid=i.mjid and i.brandid=b.brandid
left join itemcolor ic on isku.mjid=ic.mjid and isku.colorid=ic.colorid
left join color c on ic.colorid=c.colorid
left join itemsize isize on isku.mjid=isize.mjid and isku.sizeid=isize.sizeid
left join size s on isize.sizeid=s.sizeid;

------解决方案--------------------
select * from project p join user u on (p.project_customer_id=u.user_id or p.project_developer_id=u.user_id or p.project_tester_id=u.user_id) where p.id=已知的projectID
------解决方案--------------------
引用:
select * from project p join user u on (p.project_customer_id=u.user_id or p.project_developer_id=u.user_id or p.project_tester_id=u.user_id) where p.id=已知的projectID


楼上这个可以,
不过这样会出现
项目 用户名
1     1
1     2
1     3
LZ自己把行转换成列。
或者查询3个用户表,分别区别名就行
select p.name,a.uname,b.uname,c.uname from project p
left join user a on p.1=a.uid
left join user b on p.2=b.uid
left join user c on p.3=c.uid

这样就出现
项目,用户名1,用户名2.。。。。。。。。。。。。。