好吧,所以在设置表和查询它们方面我基本上是个菜鸟......但我认为我的标题很好地解释了我正在尝试做的事情,并且我相信我正在寻找一种方法使用 JOIN
但我一生都无法弄清楚如何做到这一点(我已经阅读了一些关于 S.O. 的示例和网络上的教程,但无法理解周围)。基本上我有一个名为 userFollowsSeries
的表,它有三列
| userID | seriesID | series_title |
------------------------------------
| int | int | var_char |
和另一个表series
,它有一个主键seriesID
和一系列有关该系列的相关信息。现在我想获取表series
中用户的每个seriesID
的所有信息。
现在我基本上尝试根据单个userID
获取每个seriesID
,如下所示
$userFollows = mysqli_query($con, "SELECT * FROM userFollowsSeries WHERE userID='$user_id'") or die(mysql_error());
while($follows = mysqli_fetch_array($userFollows)){
$show_id=$follows['seriesID'];
echo $show_id; //this is realy just here for testing
$result = mysqli_query($con, "SELECT * FROM series WHERE id='$show_id'") or die(mysql_error());
while($row = mysqli_fetch_array($result)){
// i get and print out everything in a formatted for my html code
}
}
现在我意识到这不太理想,效率也不是很高,但无法弄清楚如何在一个语句/查询中再次使用我假设某种 JOIN
语句来完成所有这些操作。我所拥有的一切都有效,但速度非常慢(大概是因为 while 循环中嵌入了查询)。不管怎样,你可以帮助我了解如何通过连接或新的表结构来改进这一点,这将是非常棒的,并且非常感激。
最佳答案
类似 SELECT * FROM `series` WHERE `id` IN (SELECT `SeriesID` FROM `userFollowsSeries` WHERE `userID`=$user_id)
的内容应该可以很好地工作。请注意,它可能无法充分利用索引。最好选择 ID,构建它们的数组,然后使用 IN 和 implode 来加入该数组。
关于php - 如何正确使用Mysql SELECT * FROM table WHERE 列='Any_value_in_Array',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16745519/