2011-12-06 70 views
0

我正在为我的数据库创建一个视图,我正在连接3个表,用户,personal_info和contact_info,如果您发现我的Select语句中有很多列名称,因为我不想包含主键但它看来我这里有一个错误,看看如何在MySQL中加入3个表?

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 
+0

ü可以添加每个表的结构?因为很难找出哪些列属于哪个表。 – Shirish11

+1

MySQL中没有'FULL JOIN'。你必须用'LEFT'和'RIGHT'加入'UNION'来模拟它。 –

+0

您也有一个无意义的逗号,后面是:'LEFT JOIN个人信息关于idUser = idPersonal_Info,' –

回答

0

错误的:

LEFT JOIN的personal_info上ID用户= idPersonal_Info

你需要指定哪个表相当于在其他表,其中一个列,例如

SELECT a,b,c from table1 
    LEFT JOIN table2 
    on table1.a= table2.columnY 
你的情况

on USER.idUser = Personal_Info.idPersonalInfo 

与同为第三个加入

另一件事是行末的逗号:

LEFT JOIN personal_ info on idUser = idPersonal_Info

它不属于那里。

+0

如果没有冲突,则没有必要这样做。但这是一个很好的建议,为了清晰和维护。 –

0

与backtics报价是:payroll.new_view

CREATE VIEW `payroll.new_view`