Mysql select with exceptions


Mysql select with exceptions

我想创建一个表的数据从mysql,但有一些例外。更确切地说,我有:

$data = mysql_query("SELECT `id` FROM `dates` WHERE `user`='x'");
$exceptions = mysql_query("SELECT `id` FROM `exceptions` WHERE `user`='x'");

我想写这样的东西:

for($j=1; $date = mysql_fetch_object($data); $j++)

但是我不想从data中获得行,从$exceptions中获得相同的id,例如:

if($data->id == $exceptions->id) return null;

如果$data中有1 2 3 4 5 $exceptions中有4,我想只返回1 2 3 5行

您只需要查询一次:

SELECT id FROM dates WHERE user = 'x' AND id NOT IN (SELECT id FROM exceptions WHERE user = 'x'))

也有多种方法来编写该查询。您应该始终只检索您需要的数据。