查询以显示两个连接

时间:2016-04-28 18:36:50

标签: mysql sql codeigniter join

我正在尝试构建一个查询来输出CommentsComment_DateUsernameFirst_Name,具体取决于UserIDStaffID是在表格行中表示。

我可以只用UserIDStaffID来处理它,但是当我添加两个连接时,它什么也没显示。

因此,我需要再次输出CommentsComment_DateUsernameFirst_Name。 任何帮助表示赞赏。

我的查询

 select('Report_Comments.Comments, Report_Comments.Comment_Date, Login.Username, staff.First_Name')
        ->from('Report_Comments')
        ->join('Login staff', 'Report_Comments.UserID = Login.LoginID')
        ->join('staff', 'Report_Comments.UserID_Staff = staff.StaffID');

2 个答案:

答案 0 :(得分:1)

Report_Comments加入Login staff点击Report_CommentsUserID =
LoginLoginID, Report_CommentsUserID_Staff

上面缺少join个关键字。如果您希望join表,则所有表都必须join使用明确的条件。

纠正于:

SELECT `Report_Comments`.`Comments`, `Report_Comments`.`Comment_Date`, `Login`.`Username`, `staff`.`First_Name`
FROM `Report_Comments`
JOIN `Login` ON `Report_Comments`.`UserID` = `Login`.`LoginID
JOIN `staff` ON `Report_Comments`.`UserID_Staff = `staff`.`StaffID` 
WHERE `ReportID` = '53'

答案 1 :(得分:0)

正如您可以从documentation(搜索“加入”)中找到的,对join()的调用有两个必需参数。第一个是已加入的表格,第二个是加入条件。显然你在其参数中挤压了两个表和两个连接条件,这就是CodeIgniter生成的查询有错误的原因。

您的代码应为:

select('Report_Comments.Comments, Report_Comments.Comment_Date, Login.Username,
    staff.First_Name')
->from('Report_Comments')
->join('Login', 'Report_Comments.UserID = Login.LoginID')
->join('staff', 'Report_Comments.UserID_Staff = staff.StaffID')
->where('reportID', '53');