1

私は次のようにクエリを持っています

SELECT * FROM Issue I, Condition C, Result R, Status S      
            LEFT JOIN Issue as i1 ON C.ID = i1.ConditionID
            LEFT JOIN Issue as i2 ON R.ID = i2.ResultID
            LEFT JOIN Issue as i3 ON S.ID = i3.StatusID 
            WHERE I.ID = 452

これは私にエラーメッセージを与えています:

マルチパート識別子「C.ID」をバインドできませんでした。
マルチパート識別子「R.ID」をバインドできませんでした。

次のような結果が必要です。

ID | IssueName | ConditionID | ResultID | StatusID | ID | ConditionName | ID | ResultName | ID | StatusName

4

5 に答える 5

2

やってみます

SELECT *
FROM Issue I
LEFT JOIN Condition C ON C.ID = I.ConditionID
LEFT JOIN Result    R ON R.ID = I.ResultID
LEFT JOIN Status    S ON S.ID = I.StatusID
WHERE I.ID = 452
于 2012-04-05T07:19:51.180 に答える
2

を使用していないと仮定しMySQL Serverました。これを試して:

SELECT * 
FROM Issue I, Condition C, Result R, Status S      
     LEFT JOIN Issue as i1 ON C.ID = i1.[Condition ID]
     LEFT JOIN Issue as i2 ON R.ID = i2.[Result ID]
     LEFT JOIN Issue as i3 ON S.ID = i3.StatusID 
WHERE I.ID = 452

また

SELECT *
FROM Issue I LEFT JOIN Condition C ON C.ID = I.ConditionID
     LEFT JOIN Result    R ON R.ID = I.ResultID
     LEFT JOIN Status    S ON S.ID = I.StatusID
WHERE I.ID = 452
于 2012-04-05T07:21:05.237 に答える
1
SELECT * FROM Issue I, Condition C, Result R , Status S      
                                             ^---- You missing this
            LEFT JOIN Issue as i1 ON C.ID = i1.Condition ID
            LEFT JOIN Issue as i2 ON R.ID = i2.Result ID
            LEFT JOIN Issue as i3 ON S.ID = i3.StatusID 
            WHERE I.ID = 452
于 2012-04-05T07:17:55.543 に答える
1

まず、投稿されたクエリにはリレーション `I'と他のリレーションの間にJOINがないため、ここでデカルト結合になります。

昔ながらの結合を使用すると、クエリは次のようになります。

SELECT *
  FROM Issue I, Condition C, Result R, Status S
 WHERE I.ConditionID = C.ID
   AND I.ResultID = R.ID
   AND I.StatusID = S.ID
   -- the filter comes here
  AND I.ID = 42;

ANSI結合構文の使用:

SELECT *
  FROM Issue I
    LEFT JOIN Condition C ON C.ID = I.ConditionID
    LEFT JOIN Result R ON R.ID = I.ResultID
    LEFT JOIN Status S ON S.ID = I.StatusID
 -- the filter comes here
 WHERE I.ID = 42;
于 2012-04-05T07:29:20.673 に答える
0

クエリにタイプミスがあります:

Result R [comma is needed here] Status S
于 2012-04-05T07:16:46.577 に答える