结合两个MySQL查询的结果

时间:2016-02-16 19:29:36

标签: php mysql

假设我有父通道X,它有4个子通道。每个子频道和父频道都有一些视频,首先sql查询返回父节点为X的所有子频道中的视频,第二个查询返回频道为X的视频。现在我想要这两个节目的组合结果。频道X中的视频总数和X

的所有子频道中的视频
$sql1="SELECT * FROM vibe_videos where category in (SELECT cat_id FROM vibe_channels where child_of=".$video_cat_id.");";
     $sql2 = "SELECT * FROM vibe_videos where category = ".$video_cat_id.";";

3 个答案:

答案 0 :(得分:1)

您可以使用or条件来合并查询

$sql1="SELECT * FROM vibe_videos where 
    category in (SELECT cat_id FROM vibe_channels where child_of=$video_cat_id)
    or category = $video_cat_id";

附注:确保清理$video_cat_id或更好地使用准备好的语句来保护自己免受注入攻击。

答案 1 :(得分:0)

我认为你期待这一点。

" Select vibe_videos.* from vibe_videos INNER JOIN vibe_channels ON  (  vibe_channels.child_of = vibe_videos.category AND vibe_videos.category  = ". $video_cat_id .") or vibe_videos.category = ". $video_cat_id;

答案 2 :(得分:0)

"SELECT foo1, foo2, foo3 FROM `vibe_videos` WHERE category = ".$video_cat_id." OR child_of=".$video_cat_id.";

但是你应该使用预准备语句来消除潜在的SQL注入攻击,并避免选择*来支持命名你选择的内容。

相关问题