sqlite3 データベースで次のクエリを実行しています。
SELECT file.id AS fileID, file.path
FROM file
JOIN (SELECT tag_file_map.fileID,tag.tagname
FROM tag_file_map, tag JOIN tag ON tag_file_map.tagID = tag.id)
ON tag_file_map.fileID = file.id
WHERE tag.tagname = 'tag1' AND tag.tagname= 'tag2';
次のエラーが表示されます。"ambiguous column name: tag.tagname"
Google は、1 つ以上のテーブルが列名を共有し、列の特定のテーブルが指定されていない場合に、このエラーが発生すると言っているようです。ただし、ここでは、テーブル名が指定されています。さらに、データベース全体に「tagname」という名前の列は他にないため、テーブル名の有無にかかわらずあいまいになることはありません。これは sqlite の問題ですか、それとも構文に問題がありますか?