我有3张桌子:
用户
userid | pseudo
帖子
id | titre
posts_com
id | userid | id_billet | auteur | date | html
我需要使用帖子ID所有者和用户所有者列出持续时间posts_com ...我尝试了这个查询,但结果没有更正......有什么想法吗?
SELECT c.userid,
c.id_billet,
c.auteur,
c.date,
c.html,
u.pseudo,
b.titre,
b.id
FROM posts_com AS c,
users AS u,
posts AS b
WHERE u.userid=b.userid
ORDER BY c.id DESC
LIMIT 12
[编辑] 我需要:
- >评论1(html)来自auteur on post titre(user foo)
- >来自auteur2的评论2(html)帖子titre2(用户foo2) ...
答案 0 :(得分:1)
使用加入
SELECT A.userid,A.id_billet,A.auteur,A.date,A.html,B.pseudo,C.id,C.titre
FROM posts_com A
JOIN users B ON A.userid = B.userid
JOIN posts C ON A.id = C.id
ORDER BY A.id DESC
LIMIT 12
修改强>
SELECT A.userid,A.id_billet,A.auteur,A.date,A.html,B.pseudo,C.id,C.titre
FROM posts_com A
JOIN users B ON A.userid = B.userid
JOIN posts C ON A.id_billet = C.id
ORDER BY A.id DESC
LIMIT 12
答案 1 :(得分:0)
线
WHERE u.userid=b.userid
在表格帖子中似乎没有名为userid的列。也许你的意思是
WHERE u.userid=b.id
答案 2 :(得分:0)
您尚未将post_com表与结果集相关联。因此,post_com的所有记录都与您的userse-post join的所有记录一起加入。
SELECT c.userid,
c.id_billet,
c.auteur,
c.date,
c.html,
u.pseudo,
b.titre,
b.id
FROM posts_com AS c,
users AS u,
posts AS b
WHERE u.userid=b.userid
AND b.id = c.id(+)
ORDER BY c.id DESC
LIMIT 12
答案 3 :(得分:0)
首先你需要使用JOIN,并且你的表结构不清楚我的意思是posts_com和posts表之间没有明显的关系,我们不知道posts_com.id = posts.id或posts_com.userid = posts .id或posts_com.id_billet = posts.id?
SELECT c.userid,
c.id_billet,
c.auteur,
c.date,
c.html,
u.pseudo,
b.titre,
b.id
FROM (posts_com c JOIN users u
ON c.userid = u.userid
) JOIN posts b
ON c.id_billet = b.id
ORDER BY c.id DESC
LIMIT 12