我有2个表,在1个表中有电影中所有剧集的列表,而在另一个表中有来自剧集的流。每一集都有他自己的身份证,所以这些流是通过剧集中的身份证来链接的。
但现在我遇到了一个问题:我想制作一个剧集列表,同时我想插入一个链接到该流。这意味着我必须同时获取2个表,但我不知道如何。这是我的代码
<?php
include 'connection.php';
$a = (int)$_GET['a'];
if ($result = $con->prepare("SELECT id, ep_nr, ep_title FROM anime_episode WHERE ani_id = $a"))
{
$result->execute();
$result->bind_result($eid, $nr, $title);
while ($result2 = $con->prepare("SELECT * FROM anime_stream WHERE ep_id = $eid"))
{
$result2->execute();
$result2->bind_result($eid, $etitle, $lang, $sname, $link, $uploadedby);
echo '<div id="list-box">';
echo '<table cellspacing="0">';
while ($result->fetch() && $result2->fetch())
{
echo '<tr>';
echo '<td width="50">' . $nr . '</td>' . '<td>' . $title . '</td>' . '<td>' . $link. '</td>';
echo '</tr>';
}
echo '</div>';
echo '</table>';
}
}
$con->close();
?>
答案 0 :(得分:1)
正如Strawberry建议的那样,我相信您希望根据外键加入两个表,并选择两个表的内容,例如...
select
epi.*,
str.*
from
anime-episode epi
inner join
anime-stream str on epi.ani-id = str.epi-id
where
epi.ani-id = $id
这假设您的剧集总是至少有一个流,因为当在连接的每个表中找到记录时,内部连接将只返回一行(带有两个表的列)。可以使用左外连接,即使给定剧集不存在流,它仍将返回电影。
在我的平板电脑上找不到下划线!
答案 1 :(得分:0)
这样的查询应该可以解决问题。
SELECT ae.id, ae.ep_nr, ae.ep_title, as.* FROM anime_episode ae
LEFT JOIN anime_stream as ON as.ep_id = ae.id
WHERE ae.ani_id = [$arg]