php找不到mysql_PHP-仅在找不到匹配项时返回MySQL

我在处理复杂的MySQL查询时遇到问题:

一个表包含所有ID(项目ID)的行,另一表包含已查看的项目的“ project_ID”.因此,我需要获取该用户尚未查看但所有其他用户可能已查看过的所有ID.

这是当前失败的代码查询:

SELECT p.id FROM projects p

LEFT JOIN projects_viewed pv ON p.id = pv.project_id

WHERE NOT pv.username = 'SomeOneElse';

它将起作用,但是我认为它可能会失败,因为p.username可以等于“ someOneElse”,也可以不等于“ SomeOneElse”,因为“ pv.project_id”不是前面提到的唯一.

假设初始值如下,这是一个示例:

INSERT INTO `projects` (`id`) VALUES

(1), (2), (3), (4), (5);

INSERT INTO `projects_viewed` (`project_id`, `username`,) VALUES

(1, 'Billy'),

(2, 'SomeOneElse'),

(2, 'Billy'),

(3, 'Billy'),

(4, 'SomeOneElse'),

(4, 'Billy'),

(5, 'Billy'),

如果用户名是“ SomeOneElse”,那么我想从项目表中返回所有ID,如果根本没有找到ID(来自项目表)和project_id(来自projects_viewed表)之间匹配,或者仅存在projects_viewed中的匹配项用户名不是我们要查询的用户名(本例中为“ SomeOneElse”).

因此,在此示例中,仅应返回id的1、3和5.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值