SELECT quantity, materialTypeId ,
(SELECT typeName
FROM invTypes
WHERE TypeID IN (SELECT materialTypeId
FROM invTypeMaterials
WHERE typeId= 12743
)
) AS material
FROM invTypeMaterials
WHERE TypeID=12743 因此,除了列材料之外,这个查询给了我很好的结果。只显示第一个条目,而不是给出每一行的名称。如果我单独运行这些sql,它们就能工作,我就知道我想要什么了。我只需要把它们组合成两列。
我想做的是,我查询一个表中的数据,其中一个列有一个值,我想要转换为一个名称,这个值在另一个表中,它由唯一的TypeID链接。
寒气
发布于 2013-08-31 23:57:20
也许这会奏效:
SELECT tm.quantity, tm.materialTypeId , t.typeName
FROM invTypeMaterials tm
INNER JOIN invTypes t ON t.TypeID = tm.materialTypeId
WHERE tm.TypeID=12743 发布于 2013-09-01 07:58:48
如果要查找当前记录的materialTypeID名称,则不能使用单独的子查询,而必须使用外部查询中的materialTypeID值。
SELECT quantity, materialTypeId,
(SELECT typeName
FROM invTypes
WHERE TypeID = invTypeMaterials.materialTypeId
) AS material
FROM invTypeMaterials
WHERE TypeID=12743https://stackoverflow.com/questions/18553751
复制相似问题