我目前遇到的问题是我无法链接3个单独的SQL表。以下是不同表格的相关位。
Comments
commentID userID staffID comment comment_date
52 1037 0 sadsadsa 2016-01-12
54 0 1050 asda 2016-01-12
Users
userID first_name last_name
1036 Janet Ang
1037 glenn tan
Staffs
staffID staffName
1001 Ling Ling
1011 Lee Ming
1003 Joyce
1010 Titus
1008 Vivian
1005 Vincent
1006 Alex
1046 Glenn
1047 Glenn2
1048 glennjr2
1049 glenn3
1050 glenn4
我目前正试图检索用户和员工发表的评论,这三张表并没有相互关联。 "评论"表链接到"用户"和"员工"表,但"用户"和"员工"表没有链接在一起。我正在使用此查询
SELECT comments.comment, users.first_name, users.last_name, staffs.staffName, comments.comment_date
FROM comments
INNER JOIN users
on comments.userID = users.userID
LEFT OUTER JOIN staffs
on comments.staffID = staffs.staffID
WHERE comments.videoID = $vid_id
任何人都可以帮忙看看如何更改查询以解决我的问题?感谢任何帮助。
答案 0 :(得分:1)
您可以对表(users,staffs)
和comments
表使用INNER JOIN:
示例:强>
SELECT comments.comment, users.first_name, users.last_name, staffs.staffName, comments.comment_date
FROM comments
INNER JOIN users ON comments.userID = users.userID
INNER JOIN staffs ON comments.staffID = staffs.staffID
WHERE comments.videoID = $vid_id
在此之后,您将获得两个结果,一个用于users
,另一个用于staffs
。
如果您需要comments
所有可用或不同的用户和员工,则可以LEFT JOIN
使用相同的查询。
答案 1 :(得分:1)
您可以使用UNION操作:
实施例:
( SELECT comments.comment, CONCAT(users.first_name, " ", users.last_name) as name, comments.comment_date, "User" as type
FROM comments, users
WHERE comments.userID = users.userID
AND comments.videoID = $vid_id )
UNION
( SELECT comments.comment, CONCAT(staffs.staffName) as name, comments.comment_date, "Staff" as type
FROM comments, staffs
WHERE comments.staffID = staffs.staffID
AND comments.videoID = $vid_id )