使用sqlite第二次查询的多个查询仅给出第一个结果

时间:2013-08-31 23:27:18

标签: mysql sql sqlite

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

寒冷

2 个答案:

答案 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