我目前在MySql数据库中有2个表。
结构:
messages
id | content | user_id | time
submessages
id | subcontent | msg_id | user_id | time
在submessages
表中,列msg_id
是外键,引用表id
中的messages
列。
现在我需要从php查询
$cur_userID = $user->current_id; // current user id.
SELECT * FROM messages WHERE id > '{$_GET['id']}' // problem here
如何查询其他用户发布的submessages
的{{1}}表格 - 是否会影响当前用户?
不应显示subcontent
等于user_id
的任何内容。
谢谢。
答案 0 :(得分:0)
你想获得子消息细节,对吧?此查询将获取消息表中的所有信息,以及来自每个子消息的所有信息。因此加入。但它会排除与消息具有相同user_id的子消息(答案?)(问题?)。
SELECT m.* sm.*
FROM messages m
INNER JOIN submessages sm
ON m.id = sm.msg_id
WHERE id > '{$_GET['id']}' // dont know why gt is used here...
AND m.user_id <> sm.user_id
我忽略了将它放入PHP所需的所有格式,因为我理解的问题是如何编写SQL。
顺便说一句,我没有得到id > $_GET['id']
部分。您似乎要求在此消息之后创建所有消息,并且您要查找该消息的子消息。我真的无法弄清楚这是否合理,但如果这是你想要的,这是一种应该有效的方法。我怀疑你想要等于,而不是大于。
答案 1 :(得分:-1)
"SELECT * FROM messages WHERE id != " . intval($_GET['id']);