繁体   English   中英

首先从一个表中选择id然后删除那些不在第二个表中的ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM