我要做的是删除大厅表中没有useronline表中id的行。这样我就可以消除那些不在线的人。(实际的脚本不是关于谁不在线,而是它的相同逻辑)有没有一种方法可以让我首先从useronline中选择id,然后在lobby中搜索那些不是我刚刚选择的id,然后用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`)

09-25 21:00