2016-05-21 5 views
1

У меня есть столбцы в нескольких таблицах с одинаковыми именами. Я использую JavaScript для отправки объекта, содержащего поля, пакет Node.js создает массив с именами, поэтому, если два столбца имеют одинаковое имя, значение последнего похоже помещается в массив.Выберите столбец для конкретной таблицы

Я имел этот запрос

SELECT * 
FROM FACTURATION AS F 
LEFT JOIN ENREGISTREMENT AS E ON F.Enregistrement=E.Numero 
LEFT JOIN RESTITUTION AS R ON F.Restitution=R.Numero 
LEFT JOIN RESERVATION AS X ON F.Numero=X.Facturation 
LEFT JOIN CLIENT AS C ON X.Numero_Client=C.Numero 

который возвращает мои ценности. Зная, что Select * не является хорошей практикой, я изменил его на

SELECT Nom, Caution, Kilometrage 
FROM FACTURATION AS F 
LEFT JOIN ENREGISTREMENT AS E ON F.Enregistrement=E.Numero 
LEFT JOIN RESTITUTION AS R ON F.Restitution=R.Numero 
LEFT JOIN RESERVATION AS X ON F.Numero=X.Facturation 
LEFT JOIN CLIENT AS C ON X.Numero_Client=C.Numero 

И это прекрасно работает. Но тогда мне нужно было отличить два столбца от разных таблиц. Я попробовал

SELECT CLIENT.Nom, ENREGISTREMENT.Caution, ENREGISTREMENT.Kilometrage 
FROM FACTURATION AS F 
LEFT JOIN ENREGISTREMENT AS E ON F.Enregistrement=E.Numero 
LEFT JOIN RESTITUTION AS R ON F.Restitution=R.Numero 
LEFT JOIN RESERVATION AS X ON F.Numero=X.Facturation 
LEFT JOIN CLIENT AS C ON X.Numero_Client=C.Numero 

И он ничего не возвращает. Даже если я выбираю только CLIENT.Nom, он не работает при выборе Nom работает отлично. Я использую пакет sqlite3 от Node Package Manager

+0

Что произойдет, если вы измените на 'SELECT C.Nom, E.Caution, E.Kilometrage'? – Arulkumar

+0

Он работает ... И теперь я чувствую себя глупо, и все же я не знаю, почему он так работает. Выполните ли псевдоним полностью оригинальное имя? Или есть какая-то непонятная причина, почему я не могу использовать полное имя? – Dranna

ответ

1

Вместо имени tablename вы можете использовать псевдонимы для имен столбцов.

SELECT C.Nom, E.Caution, E.Kilometrage 
FROM FACTURATION AS F 
LEFT JOIN ENREGISTREMENT AS E ON F.Enregistrement=E.Numero 
LEFT JOIN RESTITUTION AS R ON F.Restitution=R.Numero 
LEFT JOIN RESERVATION AS X ON F.Numero=X.Facturation 
LEFT JOIN CLIENT AS C ON X.Numero_Client=C.Numero 
Смежные вопросы