Как исправить «1054 - неизвестный столбец в предложении» - PullRequest
0 голосов
/ 19 февраля 2019

Я написал SQL-код для получения данных из моей базы данных MySQL.но когда я запускаю SQL-запрос, он возвращает ошибку.

Как это исправить.Я новичок в этом, и я погуглил, но я не могу найти решение.

1054 - Неизвестный столбец

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

Пожалуйста, не смешивайте синтаксис соединения старой школы с современным синтаксисом (последний, который вы должны использовать только).Вот ваш исправленный запрос с использованием современного синтаксиса соединения:

SELECT
    s.first_name,
    s.middle_name,
    s.last_name,
    s.gender,
    s.civil_status,
    s.birthday,
    s.address_line_1,
    s.address_line_2,
    s.address_line_3,
    s.contact_no_1,
    s.contact_no_2,
    s.nationality,
    s.religion,
    s.email,
    s.is_deleted,
    s.nic_number,
    s.is_admin,
    d.department_name,
    j.position_name 
FROM departments d
INNER JOIN job_positions j
    ON j.department_id = d.department_id 
INNER JOIN employee_position e
    ON e.position_id = j.position_id
INNER JOIN staff_data s
    ON e.user_id = s.nic_number
WHERE
    e.is_valid = 1;

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

Обратите внимание, что я также ввел псевдонимы таблиц, что облегчает чтение запроса.

0 голосов
/ 19 февраля 2019

Проблема с первым присоединением

SELECT
    staff_data.first_name,
    staff_data.middle_name,
    staff_data.last_name,
    staff_data.gender,
    staff_data.civil_status,
    staff_data.birthday,
    staff_data.address_line_1,
    staff_data.address_line_2,
    staff_data.address_line_3,
    staff_data.contact_no_1,
    staff_data.contact_no_2,
    staff_data.nationality,
    staff_data.religion,
    staff_data.email,
    staff_data.is_deleted,
    staff_data.nic_number,
    staff_data.is_admin,
    departments.department_name,
    job_positions.position_name 
FROM
    departments,
    employee_position
    INNER JOIN job_positions ON 
    job_positions.department_id = <change to req col>
    -- departments.department_id join between employee_position and job_positions, but join is on department table 
    AND departments.department_id = job_positions.department_id 
    AND employee_position.position_id = job_positions.position_id
    INNER JOIN staff_data ON employee_position.user_id = 
staff_data.nic_number 
WHERE
    employee_position.is_valid = 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...