我需要在这三个表之间进行查询:成员,消息和学校。
在我的表“消息”中,我保存了成员ID(知道是谁编写了消息)。在我的表“成员”中,我保存了该成员的学校ID。
但是我想创建类似Facebook墙的东西,在那里你可以看到你学校里任何人发来的所有短信的清单。
我很容易从任何人那里得到所有帖子,但我无法弄清楚如何只收到你学校里人的帖子。我在会话中保存了会员的学校ID,因此很容易知道我们需要从哪所学校获得帖子。
是否可以在一个查询中执行此操作?
谢谢!
答案 0 :(得分:4)
这是SQL查询:
SELECT msg.*
FROM messages AS msg
INNER JOIN members AS mem ON msg.member_id = mem.id
INNER JOIN schools AS sch ON mem.school_id = sch.id
WHERE sch.id = ?
正如迈克尔在评论中所建议的那样,这篇文章以视觉方式解释了SQL连接:http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
答案 1 :(得分:0)
SELECT m.message
FROM messages m
JOIN members b
ON m.memberid = b.memberid
JOIN schools s
ON s.schoolid = b.schoolid
WHERE s.schoolid = "replace by the schoolid stored in session"