Как объединить 3 таблицы в MySQL? - PullRequest
0 голосов
/ 06 декабря 2011

Я создаю представление для своей базы данных, я объединяю 3 таблицы: Users, personal_info и contact_info, если вы заметили, что в моем операторе Select много имен столбцов, поскольку я не хочу включать первичные ключи, но Кажется, у меня есть ошибка, посмотрите

CREATE VIEW `payroll`.`new_view` AS
Select employee_id,employee_password,First_Name,Middle_Initial,
Last_Name,Date_Of_Birth,Beneficiaries,Home_Number,Address,Mobile_Number,Email_Address
From USER
LEFT JOIN personal_info on idUser = idPersonal_Info,
FULL JOIN contact_info on idUser = idContact_Info

Ошибка

ERROR 1146: Table 'payroll.full' doesn't exist

SQL Statement:

CREATE  OR REPLACE VIEW `payroll`.`new_view` AS

Select employee_id,employee_password,First_Name,Middle_Initial,

Last_Name,Date_Of_Birth,Beneficiaries,Home_Number,Address,Mobile_Number,Email_Address

From USER

LEFT JOIN personal_info on idUser = idPersonal_Info,

FULL JOIN contact_info on idUser = idContact_Info

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

процитируйте это с помощью backtics: payroll.new_view

CREATE VIEW `payroll.new_view`  
0 голосов
/ 06 декабря 2011

Ошибка при:

LEFT JOIN личная_информация для idUser = idPersonal_Info

вам нужно указать, какой столбец в какой таблице равен какому в другой таблице, например

  SELECT a,b,c from table1 
  LEFT JOIN table2
   on table1.a= table2.columnY

в вашем случае:

on USER.idUser =  Personal_Info.idPersonalInfo

и то же самое для 3-го соединения

Еще одна запятая в конце строки:

ВЕРНУТЬСЯ В ЛИЧНУЮ ИНФОРМАЦИЮ на idUser = idPersonal_Info ,

это не принадлежит там.

...