[英]Combine Two Queries into One?
我有一个audioids
查询,它从subscribe
表中的某个用户中选择所有音频。
然后我有另一个查询,它获取这个audioids
列表并将它们与一个名为opids
的表中的一个名为audioposts
的字段进行匹配。 然后它从该audioposts
表中选择titles
,并在userid
处加入users
表中的用户。
有没有办法可以将这两个查询变成一个查询?
query1 = "SELECT audioid FROM subscribe WHERE userid = $userid";
query2 = "SELECT ap.audioid, ap.title, us.name FROM audioposts ap
INNER JOIN audioposts a2 ON a2.audioid = ap.opid
INNER JOIN users us ON us.id = a2.userid
WHERE ap.opid = $newaudio";
这是我想用一个查询替换的当前两个查询代码。 我还没有把它翻译成准备好的陈述,因为我更容易用老式的方式来想象它。 另外,无论如何,我最终都会将其转换为 NodejS;
$selectaudioid = "SELECT audioid FROM subscribe WHERE userid = $userid";
$audioResult=$dblink->query($selectaudioid);
if ($audioResult->num_rows>0) {
while ($row = $audioResult->fetch_assoc()) {
$newaudio = $row[audioid];
$getallaudio = "
SELECT ap.audioid, ap.title, us.name FROM audioposts ap
INNER JOIN audioposts a2 ON a2.audioid = ap.opid
INNER JOIN users us ON us.id = a2.userid
WHERE ap.opid = $newaudio AND ap.opid <> '0'";
$getallresult = $dblink->query($getallaudio);
if ($getallresult->num_rows>0) {
while ($row = $getallresult->fetch_assoc()) {
$dbdata[]=$row;
}}}}
只需添加另一个加入subscribe
。
SELECT ap.audioid, ap.title, us.name
FROM audioposts ap
INNER JOIN audioposts a2 ON a2.audioid = ap.opid
INNER JOIN subscribe s ON s.audioid = ap.opid
INNER JOIN users us ON us.id = a2.userid
WHERE s.userid = $userid AND ap.opid <> '0'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.