我有4個表格:用戶,帖子,評論和回覆。MYSQL - 多個SELECT語句中的一個查詢
我想進入到用戶配置文件時讓他的帖子,其中posts.user_id = users.user_id和評論,其中comments.post_id = posts.post_id和回覆replies.comment_id = comments.comment_id ..
可以在那裏在同一語句中完成的所有事情或者,我必須在帖子循環內放置一個循環來回復註釋循環中的回覆?
編輯
這裏是我想應用代碼更簡單。這個代碼工作正常,並返回崗位並和它的主人,爲發表評論和它們的主人和每一個意見的答覆和他們的主人.. 但實際上我想用較少的循環做到這一點。
$sql1 = mysql_query("SELECT * FROM posts WHERE 1");
while($row1=mysql_fetch_array($sql1))
{
$post_id=$row1['post_id'];
$user = $row1['user_id'];
$sql11 = mysql_query("SELECT * FROM user WHERE user_id=$user");
while($row11=mysql_fetch_array($sql11))
{
$username=$row11['user_name'];
}
echo("..post BY ". $username ."<br>");
$sql2 = mysql_query("SELECT * FROM comments WHERE post_id=$post_id");
while($row2=mysql_fetch_array($sql2))
{
$comment_id=$row2['comment_id'];
$comment_user=$row2['user_id'];
$sql21 = mysql_query("SELECT * FROM user WHERE user_id=$comment_user");
while($row21=mysql_fetch_array($sql21))
{
$com_username=$row21['user_name'];
}
echo("......comment BY " . $com_username . "<br>");
$sql3 = mysql_query("SELECT * FROM replies WHERE comment_id=$comment_id");
while($row3=mysql_fetch_array($sql3))
{
$rep_user=$row3['user_id'];
$sql31 = mysql_query("SELECT * FROM user WHERE user_id=$rep_user");
while($row31=mysql_fetch_array($sql31))
{
$rep_username=$row31['user_name'];
}
echo("...........Reply BY ". $rep_username . "<br>");
}
}
}
使用[JOIN](https://en.wikipedia.org/wiki/Join_%28SQL%29)s。 –
使用加入特定的地方。 –