MySQL错误“from子句中的列'id'不明确”,但我已经在“id”前面加了一个表

MySQL错误“from子句中的列'id'不明确”,但我已经在“id”前面加了一个表,mysql,Mysql,根据查询: SELECT DISTINCT score.* FROM score LEFT OUTER JOIN tag ON (tag.id_score = score.id) INNER JOIN score AS score_1 USING (id) WHERE (score.song_name LIKE '%[Upload]%' OR score.artist_name LIKE '%[Upload]%' OR score.creator_name LIKE '%[Upl

根据查询:

SELECT DISTINCT score.* FROM score LEFT OUTER JOIN tag ON (tag.id_score = score.id) INNER JOIN score AS score_1 USING (id) WHERE (score.song_name LIKE '%[Upload]%' OR score.artist_name LIKE '%[Upload]%' OR score.creator_name LIKE '%[Upload]%' OR tag.name LIKE '%[Upload]%') AND (score_1.song_name LIKE '%[Check OK]%' OR score_1.artist_name LIKE '%[Check OK]%' OR score_1.creator_name LIKE '%[Check OK]%' OR tag.name LIKE '%[Check OK]%') 在MySQL 5.1.37中,from子句中的“id”列不明确。通常,人们通过在不明确的列前面添加显式表来解决这个问题,但这里我已经这样做了:tag.id_score=score.id。保留左外部联接标记可以解决问题,但不允许在标记表内搜索


这是MySQL中的一个bug还是我遗漏了什么?

如果你改变它,会不会没有帮助

INNER JOIN score AS score_1 USING (id)


在本例中,我成功地使用了如下子查询:

SELECT * FROM ( SELECT DISTINCT score.* FROM score LEFT OUTER JOIN tag ON (tag.id_score = score.id) WHERE (score.song_name LIKE '%[Upload]%' OR score.artist_name LIKE '%[Upload]%' OR score.creator_name LIKE '%[Upload]%' OR tag.name LIKE '%[Upload]%') ) AS score_0 INNER JOIN ( SELECT DISTINCT score.* FROM score LEFT OUTER JOIN tag ON (tag.id_score = score.id) WHERE (score.song_name LIKE '%[Check OK]%' OR score.artist_name LIKE '%[Check OK]%' OR score.creator_name LIKE '%[Check OK]%' OR tag.name LIKE '%[Check OK]%') ) AS score_1 USING (id)
是的,score_1.id=score.id上作为score_1的内部连接分数已删除错误消息,但未给出任何结果。我认为我需要使用子查询/视图,而不是将太多的东西连接在一起。 SELECT * FROM ( SELECT DISTINCT score.* FROM score LEFT OUTER JOIN tag ON (tag.id_score = score.id) WHERE (score.song_name LIKE '%[Upload]%' OR score.artist_name LIKE '%[Upload]%' OR score.creator_name LIKE '%[Upload]%' OR tag.name LIKE '%[Upload]%') ) AS score_0 INNER JOIN ( SELECT DISTINCT score.* FROM score LEFT OUTER JOIN tag ON (tag.id_score = score.id) WHERE (score.song_name LIKE '%[Check OK]%' OR score.artist_name LIKE '%[Check OK]%' OR score.creator_name LIKE '%[Check OK]%' OR tag.name LIKE '%[Check OK]%') ) AS score_1 USING (id)