Я хочу создать таблицу представления, получая данные из трех таблиц SQL. Но проблема в том же Имена столбцов не отображаются в таблице - PullRequest
0 голосов
/ 30 сентября 2019

Я хочу создать таблицу представления, получая данные из трех таблиц SQL. Но проблема в том, что имена столбцов не отображаются в таблице. Когда я пытаюсь запустить Query is SQL, возникает ошибка.

таблица A и таблица C имеют одно и то же имя столбца, таблица B - другое имя столбца. Мой SQL-запрос

CREATE VIEW reporting AS 
SELECT 
    chart_entery.booking_id, 
    chart_entery.activity_name, 
    tbl_booking.ref_no 
FROM proof a 
JOIN tbl_booking b 
JOIN chart_entery c 
WHERE 
    a.booking_id = b.id 
    AND a.booking_id = c.booking_id 
    AND b.id = c.booking_id

Ошибка:

# 1054 - Неизвестный столбец 'chart_entery.booking_id' в 'списке полей'

Ответы [ 3 ]

1 голос
/ 30 сентября 2019

Вы используете псевдонимы таблиц, поэтому вам нужно использовать псевдонимы при перечислении столбцов. Также вам необходимо переместить условия соединения из предложения WHERE в предложение ON соответствующего JOIN:

CREATE VIEW reporting AS 
SELECT 
    c.booking_id, 
    c.activity_name, 
    b.ref_no 
FROM proof a 
JOIN tbl_booking b ON  a.booking_id = b.id 
JOIN chart_entery c ON a.booking_id = c.booking_id AND b.id = c.booking_id
0 голосов
/ 30 сентября 2019

JOIN правильно. Вам нужны соответствующие пункты ON. Кроме того, используйте псевдонимы таблицы значений:

CREATE VIEW reporting AS
    SELECT ce.booking_id, ce.activity_name, b.ref_no
    FROM proof p JOIN
         tbl_booking b
         ON p.booking_id = b.id JOIN
         chart_entry ce 
         ON ce.booking_id = b.id ;

Ваш запрос также не работает из-за непоследовательного использования псевдонимов таблицы.

0 голосов
/ 30 сентября 2019

Попробуйте использовать тот же псевдоним таблицы и примените правильное предложение ON

CREATE VIEW reporting AS 
SELECT c.booking_id
    , c.activity_name
    , b.ref_no 
FROM proof a 
JOIN tbl_booking b ON a.booking_id = b.id AND
JOIN chart_entery c ON a.booking_id = c.booking_id  AND b.id = c.booking_id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...