Ошибка MySQL «Идентификатор столбца в предложении from неоднозначен», но я поставил перед моим «id» таблицу

0

Учитывая запрос:

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]%')

Я получаю Column 'id' in from clause is ambiguous в MySQL 5.1.37. Обычно люди исправляют это, добавляя явную таблицу перед их неоднозначными столбцами, но здесь я уже сделал это: (tag.id_score = score.id). Выход из LEFT OUTER JOIN tag устраняет проблему, но не позволяет выполнять поиск в таблице тегов.

Является ли это ошибкой в ​​MySQL или я что-то пропустил?

Теги:

2 ответа

2
Лучший ответ

Не поможет ли это, если вы измените

INNER JOIN score AS score_1 USING (id)

к

INNER JOIN score AS score_1 (score_1.id_score = score.id)
  • 0
    да, ВНУТРЕННЯЯ РЕЙТИНГ оценка AS КАК Score_1 ON (score_1.id = score.id) удалил сообщение об ошибке, но не дал результатов. Я думаю, что мне нужно использовать подзапросы / представления и не объединять слишком много вещей вместе.
0

В этом случае я успешно использовал подзапросы:

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)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню