我正在尝试构建一个查询来输出Comments
,Comment_Date
,Username
或First_Name
,具体取决于UserID
或StaffID
是在表格行中表示。
我可以只用UserID
或StaffID
来处理它,但是当我添加两个连接时,它什么也没显示。
因此,我需要再次输出Comments
,Comment_Date
,Username
和First_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');
答案 0 :(得分:1)
Report_Comments
加入Login
staff
点击Report_Comments
。UserID
=
Login
。LoginID, Report_Comments
。UserID_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');