无法弄清楚复杂的SQL查询

时间:2014-02-16 16:27:22

标签: php mysql sql

我需要在这三个表之间进行查询:成员,消息和学校。

在我的表“消息”中,我保存了成员ID(知道是谁编写了消息)。在我的表“成员”中,我保存了该成员的学校ID。

但是我想创建类似Facebook墙的东西,在那里你可以看到你学校里任何人发来的所有短信的清单。

我很容易从任何人那里得到所有帖子,但我无法弄清楚如何只收到你学校里人的帖子。我在会话中保存了会员的学校ID,因此很容易知道我们需要从哪所学校获得帖子。

是否可以在一个查询中执行此操作?

谢谢!

2 个答案:

答案 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"