0
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 链接

寒冷

4

2 回答 2

1

可能这会起作用:

    SELECT tm.quantity, tm.materialTypeId , t.typeName
      FROM invTypeMaterials tm
INNER JOIN invTypes t ON t.TypeID = tm.materialTypeId
     WHERE tm.TypeID=12743 
于 2013-08-31T23:57:20.460 回答
0

如果要查找materialTypeID当前记录的名称,则不能使用单独的子查询,而应使用materialTypeID外部查询的值。这称为相关子查询

SELECT quantity, materialTypeId,
       (SELECT typeName
          FROM invTypes
         WHERE TypeID = invTypeMaterials.materialTypeId
       ) AS material
 FROM invTypeMaterials
 WHERE TypeID=12743
于 2013-09-01T07:58:48.430 回答