我正在尝试找出如何显示从where子句中排除的所有值,而不是由以下选项选择的值:
$pdo = $service->pdo;
$sql = "SELECT a.id, a.name, a.surname, a.job, b.start_date, b.end_date
FROM table1 a
INNER JOIN table2 b on b.id = a.id
WHERE a.job = '{$job}'
AND
STR_TO_DATE(b.`start_date`, '%d-%m-%Y') = '{$date}'
GROUP BY a.id ";
return $pdo->query($sql)->fetchAll(PDO::FETCH_OBJ);
这个查询返回的是首先匹配“工作标题”的值,然后是表2中该日期中存在的值。我要展示的是基于“工作标题”的所有其他值,不包括那个特定日期的值。基本上,我需要弄清楚,例如,如何知道谁是免费的,在一个特定的日期基于这个查询。
谢谢你的帮助
1条答案
按热度按时间q8l4jmvw1#
您可以修改查询并设置inverse where子句,如下所示,您将得到与“工作标题”不匹配的行或(这很重要)与表2中的日期重新查询不匹配的行:
编辑
看完你的评论后,我发现你不明白´您不需要查询所指定的行,您需要与第一个查询匹配而与第二个查询不匹配的行。所以你需要这样: