Запрос работает на PhpMyadmin, но не на моем сервере - PullRequest
0 голосов
/ 16 ноября 2018

Вот мои таблицы:
' modules-settings ' со столбцами: module_ticker | имя | module_code |.
' modules-users ' со столбцами: | роль | module_id | module_order |.

Этот запрос № 1 работает:

SELECT `modules-settings`.module_code 
FROM `modules-settings` 
JOIN `modules-users` 
 ON `modules-users`.module_id=`modules-settings`.module_ticker WHERE role='N'

но не запрос № 2:

SELECT `modules-settings`.module_code, `modules-users`.module_order 
FROM `modules-settings` 
JOIN `modules-users` 
ON `modules-users`.module_id=`modules-settings`.module_ticker WHERE role='N'

Ошибка SQL: « Не удалось выполнить запрос ». Странно то, что запрос № 2 работает, когда я тестирую его на PhpMyAdmin .

Что мне здесь не хватает? Спасибо за вашу помощь.

Ответы [ 5 ]

0 голосов
/ 18 ноября 2018

@ Эйдан указал мне на решение.Он знал, что вопросы были хорошими, поэтому попытался найти другую причину, придумывая нестандартно.ПБ действительно состоял в том, что я выполнял эти запросы в 2 базах данных, очень похожих, но все же достаточно отличающихся для того, чтобы мой ПБ происходил.

0 голосов
/ 16 ноября 2018
please try using this :  
  my database table  :
    I have created two tables:
    SELECT * FROM `modules-settings` ;

    module_ticker | name     | module_code  |
    +---------------+----------+--------------+
    |             1 | test     | testcode     |
    |             2 | demotest | demotestcode |


    SELECT * FROM `modules-users` LIMIT 0 , 30;
    +------+-----------+--------------+
    | role | module_id | module_order |
    +------+-----------+--------------+
    | N    |         1 |          123 |
    | 0    |         2 |          456 |
    +------+-----------+--------------+

    Now execute query :
    SELECT `modules-settings`.module_code, `modules-users`.module_order  FROM `modules-settings`  JOIN `modules-users`  ON `modules-users`.module_id=`modules-settings`.module_ticker WHERE role='N';
    +-------------+--------------+
    | module_code | module_order |
    +-------------+--------------+
    | testcode    |          123 |
    +-------------+--------------+
0 голосов
/ 16 ноября 2018
  1. Убедитесь, что база данных по умолчанию - это база данных, к которой вы собираетесь обращаться.
  2. попробуйте выполнить следующий запрос после изменения имен таблиц

SELECT ms.module_code FROM modules_settings ms JOIN modules_users mu ON mu.module_id=ms.module_ticker

0 голосов
/ 16 ноября 2018

пожалуйста, попробуйте использовать этот запрос:

SELECT ms.module_code, mu.module_order 
FROM modules-settings ms
JOIN modules-users mu
ON mu.module_id=ms.module_ticker WHERE role='N'
0 голосов
/ 16 ноября 2018

Я видел это однажды, когда клиент mysql на сервере отличался от версии сервера mysql.Пожалуйста, проверьте, что ваш клиент и сервер имеют одинаковую версию.phpmyadmin обходит клиента и отправляет запрос непосредственно на сервер, поэтому phpmyadmin будет работать, даже если клиент mysql другой версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...