![](/img/trans.png)
[英]How to SELECT data from two tables which only first row of second table is selected for one row of first table
[英]First select ids from one table then delete the ones that aren't those in the second table
我要做的是删除lobby表中没有useronline表中的id的行。 这样我就能消除那些不“在线”的人。 (实际的脚本不是关于谁不在线但是它的逻辑相同)有没有办法我可以先从useronline
选择id,然后在lobby
搜索那些不是我刚刚选择的那些,并删除他们有一个while循环?
这是我的非工作脚本,向您展示到目前为止我的想法:
$sql = mysql_query("SELECT DISTINCT `id` FROM `useronline` WHERE 1");
while($row = mysql_fetch_array( $sql )) {
mysql_query("DELETE *
FROM `lobby`
WHERE `tableid` NOT IN ('$row') <-- Can't figure out how to make this part
LIMIT 0 , 30");
}
您可以使用一个查询执行此操作。
DELETE FROM `lobby`
WHERE `tableid` NOT IN (SELECT DISTINCT `id` FROM `useronline`)
为了使代码保持原样,您希望将$ row更改为$ row [“id”],如下所示:
WHERE `tableid` NOT IN ('" . $row["id"] . "')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.