Есть ли ошибка в запросе mysql?

Ссылка скопирована
1 ответ

Почему phpMyAdmin говорит в этом запросе
SELECT *, cards.id AS id FROM cards WHERE 1
Error: #1060 Дублирующееся имя столбца 'id'
Но с желтым треугольничком, обычной ошибки при этом не показывает, выводит неверное число строк запроса.
При этом запрос выполняет, показывает результат

При выполнении запроса в коде php все нормально и проблем никаких не видно.

Я так понимаю, что * уже содержит поле id и второй раз назначать ему алиас некорректно. Насколько это критично и нужно ли переделывать все подобные запросы?

***
На самом деле там более сложный запрос
SELECT *, cards.id AS id FROM cards JOIN table2 ON cards.id=table2.cards_id WHERE ......
Но в table2 тоже есть поле id
То есть это нужно, чтобы $res['id'] был именно id из нужной таблицы
Просто в проекте много такого, проблем никогда не видел. А тут phpmyadmin с числом строк косячит...

Дополнительно:

А в чем вообще смысл иметь два одинаковых поля?

  • Stalker_RED, Поле id - есть в двух таблицах, а они объединены. И вообще в каждой таблице Так сложилось исторически
  • Попробуйте перебороть свою лень.

    Удалите звезду. Вместо неё перечислите нужные поля, и при необходимости присвойте им алиасы.

  • Там слишком много переделывать. Хочу понять какие могут быть последствия, поэтому и спрашиваю
  • vladimir_avshtolis, Переделывание не займет много времени
  • Ответы:

    По большому счету это не варнинг а ошибка. Так что переделайте

    А то получится

    (result['id'] != result['id']) == true

    • А то получится

      (result['id'] != result['id']) == true

      Исключено.

    • Вы бы скинули полный запрос, чтобы мы не гадали
    Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Юрий Linux Ответ

    Для того чтобы определить, есть ли ошибка в запросе MySQL, необходимо внимательно проанализировать сам запрос и убедиться, что он соответствует синтаксису языка SQL.

    Ниже приведены некоторые общие ошибки, которые могут возникнуть в запросах MySQL, и способы их исправления:

    1. Ошибка в синтаксисе SQL: Проверьте, что все ключевые слова, имена таблиц и столбцов, а также операторы правильно написаны. Например, если вы забыли поставить запятую между столбцами в операторе SELECT, это может вызвать ошибку.

    2. Ошибка в именах таблиц и столбцов: Убедитесь, что все имена таблиц и столбцов правильно указаны и совпадают с их именами в базе данных.

    3. Ошибка в типах данных: Проверьте, что типы данных, которые вы используете в запросе, соответствуют типам данных столбцов в базе данных.

    4. Ошибка в условии WHERE: Убедитесь, что условия в операторе WHERE правильно сформулированы и соответствуют вашим требованиям.

    Пример:

    SELECT * FROM users WHERE age > 18;

    SELECT * FROM users WHERE age > 18;

    Если после внимательного анализа запроса вы не нашли ошибок, попробуйте выполнить его в среде разработки или консоли MySQL для получения более подробной информации об ошибке. Также не забывайте обработать возможные исключения и ошибки, чтобы ваше приложение не завершалось аварийно при выполнении запроса к базе данных.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно