我想进行两个mysqli查询。但是,如果第二个查询中的值与第一个查询中产生的值相同,我希望从结果集中排除这些值。我现在所拥有的似乎只适用于1个相同的值。显示了其余的相同值。我该如何更改?谢谢
$query1 = $db->query("SELECT colTab1 FROM table1");
while ($result1 = $query1 ->fetch_assoc()) {
$query2 = $db->query("SELECT colTab2 FROM table2 WHERE colTab2 <> $result1[colTab1]");
echo $result1['colTab1']."<br>";
}
while ($result2 = $query2 ->fetch_assoc()) {
echo $result2['colTab2']."<br>";
}
}
好吧,您可以如下修改您的第二个查询:
SELECT colTab2 FROM table2 WHERE colTab2 NOT IN (SELECT colTab1 FROM table1)
或者您只想选择两个表中的UNION
(默认情况下会省略重复项(:
SELECT colTab1 FROM table1
UNION
SELECT colTab2 FROM table2
(请注意,依赖UNION
来省略两个记录集中的重复项并不完全相同,因为每个记录集中存在的任何重复项也将被省略;如果这是一个问题,则可以使用SELECT DISTINCT ... UNION ALL SELECT DISTINCT ...
(。
只运行一个查询;为什么要从数据库中带回数据进行筛选?在数据库中筛选。
SELECT colTab2
FROM table2
WHERE colTab2 NOT IN (
SELECT colTab1
FROM table1
)