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列に結合するだけです。

私がやりたいことは、データの 1 つのテーブルを照会し、列の 1 つに名前に変換したい値があり、それが別のテーブルにあり、一意の 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 に答える