尝试使用外键在一个语句中连接多个MYSQL表

时间:2015-03-18 07:24:10

标签: php mysql

我正在尝试执行一条MYSQL语句,该语句允许用户查看“提案”的所有详细信息。在一张桌子里。但是我需要连接大约5个不同的表,并且有两个条件:

条件1:来源必须等于'主管' 条件2:表中的记录'记录'一定不存在。

到目前为止,这是我尝试在phpMyAdmin中的sql查询构建器中出现错误的一些表的尝试:

SELECT p.proposal_id, p.proposal_title, p.description, t.tag_code, c.course_title, u.forename, u.surname, FROM proposal p
LEFT JOIN proposal_tags t USING (proposal_id)
            LEFT JOIN course_details c USING (course_code)
            LEFT JOIN user u USING (user_record_id);

表结构如下:

**proposal**proposal_idsourceproposal_titledescriptiondate_addedcourse_codeuser_record_id

**proposal_tags**proposal_idtag_code

**tag_details**tag_codetag_title

**user_details**user_record_idforenamesurname

**course_details**course_codecourse_title

我希望桌子看起来像这样:

Table for Proposal

非常感谢任何帮助。

先谢谢你们!!

1 个答案:

答案 0 :(得分:1)

您需要加入tag_details表格以及proposal_tagsSupervisor Name您可以使用concat功能

SELECT 
p.proposal_id as `Proposal Id`, 
p.proposal_title as `Proposal Title`, 
p.description as Description, 
concat(u.forename,' ', u.surname) as `Supervisor Name`,
c.course_title as Course,
t.tag_title as Tags,
p.date_added as `Date Added`
FROM proposal p
LEFT JOIN proposal_tags pt on pt.proposal_id =  p.proposal_id
LEFT JOIN tag_details t on t.tag_code = pt.tag_code
LEFT JOIN course_details c on c.course_code = p.course_code
LEFT JOIN user u on u.user_record_id = p.user_record_id