2017-10-18 7 views
-1

私はStackoverflowで例を見てきましたが、私には結果が与えられていませんでした。私は "選択"しているエイリアスがあります。 OUTER JOIN "を使用して別のテーブルのカラムと比較しますが、実行すると未知のカラムのエラーが発生しますが、2番目のJOINが必要であることを読んでいますが、エラーがテーブルperuvian_foodidvideoという名前の列が含まれていないことを言っているMysql - 左外部のエイリアスはエラーを与えます

#1054 - Unknown column 'idvideo' in 'on clause' 

答えて

1

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(embed, '/', -2), '"', 1) as idvideo, embed, thumbnail, title, 
MATCH(title, tags, category) AGAINST('peruvian food') as score 
FROM peruvian_food 
LEFT OUTER JOIN peruvian_food_del ON (peruvian_food.idvideo = peruvian_food_del.id_video_del) 
WHERE MATCH(title, tags, category) AGAINST('peruvian food' IN BOOLEAN MODE) 
AND peruvian_food_del.id_video_del IS NULL 
LIMIT 30 

私は、次のエラーを取得しています。

エイリアスidvideoが割り当てられたSELECTリスト内の式を参照しようとしている場合、その参照は同じSELECT内のON句では許可されません。たとえそのような参照が許可されたとしても、peruvian_food.テーブル名で修飾することはできません。その表にidvideoという名前の列はありません。

最も簡単な回避策は、SELECTリストで使用される表現を繰り返すことです。

ON (SUBSTRING_INDEX(SUBSTRING_INDEX(peruvian_food.embed, '/', -2), '"', 1) = ... 

我々はidvideo別名を参照する必要がある場合、我々はインライン・ビューを使用する必要があり、列名ように派生テーブルからのものです。

私たちは、特定のことを推測しています...達成しようとしていることは何ですか? (私は質問されていることさえ確信していません;質問よりも状況報告書のように読みますので、何が質問されているかを推測しています)

+0

それは本当です!あなたの助けのためにタイ! – Kokox

関連する問題