1

一致する値を取得するために 2 つのテーブルを結合しようとしていますが、あいまいな句を取得しています。

私のコードはここにあります

SELECT *
FROM auction_media
  JOIN auctions
    ON auction_id = auction_id
    WHERE media_type = '3'

私のテーブル構造の例はここにあります エラーは on 句の列 'auction_id' があいまいです

http://sqlfiddle.com/#!2/13583

この問題を解決するにはどうすればよいですか?

4

6 に答える 6

4

これを試して

SELECT *
FROM auction_media
JOIN auctions
ON auction_media.auction_id = auctions.auction_id
WHERE media_type = '3'
于 2013-01-22T05:43:39.390 に答える
1
SELECT *
FROM auction_media
  JOIN auctions
    ON auction_media.auction_id = auctions.auction_id
    WHERE media_type = '3'
于 2013-01-22T05:43:55.973 に答える
1

テーブルのエイリアスを作成する必要があります。この問題は、複数の列の名前が同じであるために発生します。この場合は、結合しようとしている列です。試す

SELECT * 
FROM auction_media AS am
    JOIN auctions AS a
    ON am.auction_id = a.auction_id
    WHERE media_type = '3'

更新:短くして読みやすくするためにエイリアスを作成しましたが、別のオプションとして、auction_media.auction_idなどの完全なtable.column名を使用することもできます。

または、代わりに「USING」を使用できます

SELECT * 
FROM auction_media
    JOIN auctions
    USING (auction_id)
    WHERE media_type = '3'
于 2013-01-22T05:44:37.863 に答える
0

このようにしてください:

SELECT * FROM auction_media JOIN auctions ON auction_media.auction_id = auctions.auction_id WHERE media_type = '3'

SQLJOINを読む

于 2013-01-22T05:49:29.237 に答える
0
SELECT *
FROM auction_media
  JOIN auctions
    ON auction_media.auction_id = auctions.auction_id
    WHERE media_type = '3'
于 2013-01-22T05:43:49.813 に答える
0

テーブル名に基づいて列名を参照するだけです。

SELECT * FROM auction_media am JOIN auction a ON am.auction_id = a.auction_id
WHERE media_type = '3'
于 2013-01-22T05:45:43.023 に答える