从 table 获得其他 table 没有的结果
get results from table which other table does not have
我正在尝试比较两个数组:
First array
$query = $db->prepare("SELECT vraagnummer FROM insertquestion");
$query->execute();
$fetch_query = $query->fetchAll(PDO::FETCH_ASSOC);
Second array
$query = $db->prepare("SELECT vraagnummer FROM vraag");
$query->execute();
$fetch_query_exists = $query->fetchAll(PDO::FETCH_ASSOC);
我想收到 $fetch_query
的所有结果,但 fetch_query_exists
中的结果除外
我尝试使用:
$result=array_diff($fetch_query ,$fetch_query_exists );
但是没有显示任何结果,只是一个空数组。
那么如何获取 fetch_query
的结果,不包括 fetch_query_exists
中存在的结果?
您可以在单个查询中使用 NOT IN
SELECT vraagnummer FROM insertquestion
WHERE vraagnummer NOT IN(SELECT vraagnummer FROM vraag)
也许是,但不确定:
$query = $db->prepare("SELECT vraagnummer FROM insertquestion RIGHT JOIN vraag ON insertquestion.vraagnummer = vraag.vraagnummer");
$query->execute();
$fetch_query = $query->fetchAll(PDO::FETCH_ASSOC);
如果您不想使用单个查询,请使用此查询:
$result = array_diff_assoc($fetch_query , $fetch_query_exists );
除了@Saty 的回答之外,我相信以下内容在没有子选择的情况下也可以解决问题。
SELECT i.vraagnummber
FROM insertquestion i
LEFT JOIN vraag v
ON v.vraagnummer = i.vraagnummer
WHERE v.vraagnummer IS NULL;
我正在尝试比较两个数组:
First array
$query = $db->prepare("SELECT vraagnummer FROM insertquestion");
$query->execute();
$fetch_query = $query->fetchAll(PDO::FETCH_ASSOC);
Second array
$query = $db->prepare("SELECT vraagnummer FROM vraag");
$query->execute();
$fetch_query_exists = $query->fetchAll(PDO::FETCH_ASSOC);
我想收到 $fetch_query
的所有结果,但 fetch_query_exists
我尝试使用:
$result=array_diff($fetch_query ,$fetch_query_exists );
但是没有显示任何结果,只是一个空数组。
那么如何获取 fetch_query
的结果,不包括 fetch_query_exists
中存在的结果?
您可以在单个查询中使用 NOT IN
SELECT vraagnummer FROM insertquestion
WHERE vraagnummer NOT IN(SELECT vraagnummer FROM vraag)
也许是,但不确定:
$query = $db->prepare("SELECT vraagnummer FROM insertquestion RIGHT JOIN vraag ON insertquestion.vraagnummer = vraag.vraagnummer");
$query->execute();
$fetch_query = $query->fetchAll(PDO::FETCH_ASSOC);
如果您不想使用单个查询,请使用此查询:
$result = array_diff_assoc($fetch_query , $fetch_query_exists );
除了@Saty 的回答之外,我相信以下内容在没有子选择的情况下也可以解决问题。
SELECT i.vraagnummber
FROM insertquestion i
LEFT JOIN vraag v
ON v.vraagnummer = i.vraagnummer
WHERE v.vraagnummer IS NULL;