1
SELECT * FROM movie_time AS a,movie_db AS b, movie_actor AS c
WHERE a.Movie_ID = b.Movie_ID AND b.Movie_ID=c.Movie_ID 
      AND c.Movie_ID = a.Movie_ID AND Movie_ID =17

こんにちは、結合関数を使用して動作している行を取得しようとしていますが、句を入れたときに対応する行を取得できない場合を除きますAND Movie_ID =17Movie_ID =17

mySQL ワークベンチを使用しています。同様のステートメントを使用して、取得した特定の行を削除することもできますか?

エラー: Error code 1052 Column 'Movie_ID' in where clause is ambiguos

4

4 に答える 4

3

エイリアスを指定する必要がありますa.Movie_ID =17:

SELECT * FROM movie_time AS a,movie_db AS b, movie_actor AS c
WHERE a.Movie_ID = b.Movie_ID AND b.Movie_ID=c.Movie_ID 
      AND c.Movie_ID = a.Movie_ID AND a.Movie_ID =17

movie_time削除の場合 (テーブルから削除する場合):

DELETE
    a
FROM 
    movie_time AS a 
INNER JOIN movie_db AS b
    ON a.Movie_ID = b.Movie_ID
INNER JOIN movie_actor AS c
    ON c.Movie_ID = a.Movie_ID
WHERE 
    a.Movie_ID =17
于 2013-05-16T15:12:50.123 に答える
1
SELECT * FROM movie_time AS a,movie_db AS b, movie_actor AS c
WHERE a.Movie_ID = b.Movie_ID AND b.Movie_ID=c.Movie_ID 
      AND c.Movie_ID = a.Movie_ID AND a.Movie_ID =17

Movie_ID =17 のエイリアス名が指定されていないため、あいまいです。上記のすべてのテーブルには Movie_id 列があるため、ステートメント Movie_id=17 を使用する場合、SQL はどのテーブル Movie_id 列を参照しているかを判断できません。a.Movie_ID =17必要に応じMovie_id=17て、テーブル movie_time から変更します。

補足として、INNER JOIN を使用してこれを行う必要があります。

于 2013-05-16T15:12:44.740 に答える