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分离他们工作,我看到我想要的。我只需要将它们组合成2列。
我想要做的是,我在一个表中查询数据,其中一个列有一个我希望转换为名称的值,这是在另一个表中并且由一个唯一的TypeID链接
寒冷
答案 0 :(得分:1)
可能会有效:
SELECT tm.quantity, tm.materialTypeId , t.typeName
FROM invTypeMaterials tm
INNER JOIN invTypes t ON t.TypeID = tm.materialTypeId
WHERE tm.TypeID=12743
答案 1 :(得分:0)
如果要查找当前记录的materialTypeID
名称,则不能使用单独的子查询,而是使用外部查询中的materialTypeID
值。
这称为correlated subquery:
SELECT quantity, materialTypeId,
(SELECT typeName
FROM invTypes
WHERE TypeID = invTypeMaterials.materialTypeId
) AS material
FROM invTypeMaterials
WHERE TypeID=12743