表一:
carID
man1ID
man2ID
man3ID表二:
manID
manName表三:
carID
carName
比如说车上坐了三个人,表一是车和车上的人,表2是人的编号和姓名
表三是车号和车名
通过查表一二三,得到结果 carName,man1Name,man2Name,man3Name
???不要建议我改表结构!!
谢谢!!
carID
man1ID
man2ID
man3ID表二:
manID
manName表三:
carID
carName
比如说车上坐了三个人,表一是车和车上的人,表2是人的编号和姓名
表三是车号和车名
通过查表一二三,得到结果 carName,man1Name,man2Name,man3Name
???不要建议我改表结构!!
谢谢!!
man1Name=(select top 1 manName from 表二 where man1ID=a.manID),
man2Name=(select top 1 manName from 表二 where man2ID=a.manID),
man3Name=(select top 1 manName from 表二 where man3ID=a.manID)
from 表一 a
man1Name=(select top 1 manName from 表二 where man1ID=a.manID),
man2Name=(select top 1 manName from 表二 where man2ID=a.manID),
man3Name=(select top 1 manName from 表二 where man3ID=a.manID)
from 表一 a
想了一下,只能用这个了
返回若干个记录,第一个有可能不是我们选中的人
上面查询有个问题,主句要用子句的结果,同时,子句也要用主句的结果,那就是鸡和蛋的问题了字句这样写"select manName from 表二 where man3ID=(select man3ID from 表一 where a.carID=条件)"
没试过,高人指点一下!!
FROM 表一 a ,表二 b , 表三 c
WHERE a.carID=c.carid
AND a.man1id = manid
AND a.man2id = manid
AND a.man3id = manid
....................
你这个SQL不好写因a.man1id这个字段不能确定有多少,建议你修改结构,不然只能写成固定的.
SELECT 表3.carname,A.manname AS man1name,B.manname AS man2name,C.manname AS man3name FROM 表1 INNER JOIN 表3 ON 表1.carid=表3.carid INNER JOIN 表2 AS A ON 表1.man1id=A.manid INNER JOIN 表2 AS B ON 表1.man2id=b.manid INNER JOIN 表2 AS c ON 表1.man3id=c.manid