Я думаю, что это действительно базовый упущение с моей стороны, но у меня есть запрос SQL, который работает нормально. Но когда я ВЫБИРАЮ из этого результата (SELECT FROM (SELECT))
, я получаю ошибку «дубликат столбца». Конечно, в двух таблицах есть повторяющиеся имена столбцов, где я их сравниваю, но они не вызывают проблемы в исходном результате. Например:
SELECT _dia_tagsrel.tag_id,_dia_tagsrel.article_id, _dia_tags.tag_id, _dia_tags.tag
FROM _dia_tagsrel
JOIN _dia_tags
ON _dia_tagsrel.tag_id = _dia_tags.tag_id
Работает нормально, но когда я пытаюсь выбрать из него, я получаю ошибку:
SELECT DISTINCT tag FROM
(SELECT _dia_tagsrel.tag_id,_dia_tagsrel.article_id, _dia_tags.tag_id, _dia_tags.tag
FROM _dia_tagsrel
JOIN _dia_tags
ON _dia_tagsrel.tag_id = _dia_tags.tag_id) a
Независимо от DISTINCT. Хорошо, я могу изменить имена столбцов, чтобы они были уникальными, но на самом деле вопрос - почему я получаю ошибку, когда ВЫБИРАЮСЬ ОТ (ВЫБРАТЬ), а не в исходном запросе? Спасибо
Решение:
SELECT DISTINCT tag_id, tag FROM (SELECT _dia_tagsrel.tag_id, _dia_tagsrel.article_id, _dia_tags.tag
FROM _dia_tagsrel
JOIN _dia_tags
ON _dia_tagsrel.tag_id = _dia_tags.tag_id) a
Мне нужно было выбрать только один из дубликатов столбцов, хотя я сравнивал оба из них. Предоставлено ответом ниже.