[英]A PHP MySQL query regarding Joins
I have a newbies PHP MySQL question, I have 2 tables, members and messages. 我有一个新手PHP MySQL问题,我有2个表,成员和消息。
Table 'members' 表'成员'
+-----------+------+
| MEMBER_ID | NAME |
+-----------+------+
| 1 | Bob |
| 2 | Ted |
| 3 | Tom |
+-----------+------+
Table 'messages' 表'消息'
+----+------------+--------------+--------------------+
| ID | SENDERS_ID | RECEIVERS_ID | MESSAGE |
+----+------------+--------------+--------------------+
| 1 | 1 | 3 | Hello Tom from Bob |
| 2 | 2 | 3 | Hello Tom from Ted |
| 3 | 2 | 1 | Hello Bob from Ted |
+----+------------+--------------+--------------------+
I want to make a query where Tom only having his members.member_id available can get all of his messages along with name of the sender like this: 我想进行一个查询,其中Tom只有他的members.member_id可用,可以获得他的所有消息以及发件人的姓名,如下所示:
+------+--------------------+
| name | message |
+------+--------------------+
| Bob | Hello Tom from Bob |
| Ted | Hello Tom from Ted |
+------+--------------------+
I have read some examples of joins but do know how to implement them into a MySQL statement. 我已经阅读了一些连接的例子,但是知道如何将它们实现到MySQL语句中。
I can get Tom's member_id easily but do not know how to proceed further. 我可以轻松获得Tom的member_id,但不知道如何继续进行。 I also want to return the result in an array.
我还想在数组中返回结果。
public function getMessages($member_id) {
$result = mysql_query("SELECT member_id FROM members WHERE member_id = '$member_id'") or die(mysql_error());
$no_of_rows = mysql_num_rows($result);
if ($no_of_rows > 0) {
$result = mysql_fetch_array($result);
$receivers_id = $result['member_id'];
.
// What can I do here to get the $result that I want?
.
}
$no_of_rows = mysql_num_rows($result);
if ($no_of_rows > 0) {
$results = array();
while(list($results) = mysql_fetch_array($result)) {
array_push($results, $result);
}
return $results;
}
}
Any help would be greatly appreciated, 任何帮助将不胜感激,
Thanks 谢谢
SELECT c.name,
b.message
FROM members a
INNER JOIN messages b
ON a.member_ID = b.receivers_id
INNER JOIN members c
ON b.senders_ID = c.member_ID
WHERE a.name = 'Tom'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.