R
March 10, 2020, 6:40 p.m.

Qt MYSQL Select из двух таблиц

mysql, Qt

всем привет. столкнулся с такой проблемой
если в mysql workbench написать такой запрос

  1. SELECT A.name_item, A.item_id, B.item_id, B.status_ticket FROM ad_items A, ad_moderation B WHERE A.item_id = B.item_id;

все правильно работает.
но если в коде написать

  1. QString n_query = QString("SELECT A.name_item, A.item_id, B.item_id, B.status_ticket "
  2. "FROM ad_items A, ad_moderation B"
  3. "WHERE A.item_id = B.item_id");

получаю ошибку

  1. QSqlError("1064", "QMYSQL: Unable to execute query", "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'A.item_id = B.item_id' at line 1")

вопрос в чем проблема, не могу понять

2

Do you like it? Share on social networks!

6
Evgenii Legotckoi
  • March 10, 2020, 6:59 p.m.
  • The answer was marked as a solution.

Добрый день,

А если в одну строку написать?

  1. QString n_query = QString("SELECT A.name_item, A.item_id, B.item_id, B.status_ticket FROM ad_items A, ad_moderation B WHERE A.item_id = B.item_id");

Ну и возможно, что стоит экранировать выражения

так

  1. QString n_query = QString("SELECT A.name_item, A.item_id, B.item_id, B.status_ticket FROM ad_items A, ad_moderation B WHERE 'A.item_id = B.item_id'");

или так

  1. QString n_query = QString("SELECT A.name_item, A.item_id, B.item_id, B.status_ticket FROM ad_items A, ad_moderation B WHERE 'A.item_id' = 'B.item_id'");

Я точно не помню правильный синтаксис, давно не писал SQL запросы в Qt

    R
    • March 10, 2020, 7:19 p.m.

    "А если в одну строку написать? "

    Большое спасибо,
    так это помогло, спасибо, хотя не понимаю в чем проблема так как перевод строки делал как всегда
    жесть час времени гугла, просто зря потрачена была из-за пустяка

      Evgenii Legotckoi
      • March 10, 2020, 7:22 p.m.

      А вот теперь я точно знаю, в чём ошибка была.

      Вот ваш код

      1. QString n_query = QString("SELECT A.name_item, A.item_id, B.item_id, B.status_ticket "
      2. "FROM ad_items A, ad_moderation B"
      3. "WHERE A.item_id = B.item_id");

      А нужно было написать так

      1. QString n_query = QString("SELECT A.name_item, A.item_id, B.item_id, B.status_ticket "
      2. "FROM ad_items A, ad_moderation B "
      3. "WHERE A.item_id = B.item_id");

      Видите ошибку?

        R
        • March 10, 2020, 7:40 p.m.

        так, пробел после B )))))

          Evgenii Legotckoi
          • March 10, 2020, 7:43 p.m.

          ага, наверное, теперь ещё обиднее за час времени гугла? )))

            R
            • March 10, 2020, 7:47 p.m.

            конечно да))) но зато я теперь буду помнить что нужно проверять пробелы в запросах))))

              Comments

              Only authorized users can post comments.
              Please, Log in or Sign up
              • Last comments
              • Evgenii Legotckoi
                March 9, 2025, 9:02 p.m.
                К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
              • VP
                March 9, 2025, 4:14 p.m.
                Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
              • ИМ
                Nov. 22, 2024, 9:51 p.m.
                Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
              • Evgenii Legotckoi
                Oct. 31, 2024, 11:37 p.m.
                Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
              • A
                Oct. 19, 2024, 5:19 p.m.
                Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html