如此简单,却又如此困难。我有一个查询运行良好,但现在我需要进一步扩展它。
目前,该查询将用户状态更新与其他信息一起输出到网站,例如谁编写了状态等。
现在,如果用户被阻止(如果他们出现在我的tbl_blocking中),我需要修改代码以不输出用户状态
我完全被卡住了,在过去的几个小时里我都在这上面。
我需要说,
"如果tbl_blocking.user=:谁与tbl_blockeing.blocking!=:谁,不要输出结果">
换句话说,如果登录的人(:谁)阻止了某人,不要显示他们的状态
//Get status results
$sql = "SELECT
tbl_status.id as statID,
tbl_status.from_user as statFROM,
tbl_status.status as statSTATUS,
tbl_status.deleted as statDEL,
tbl_status.date as statDATE,
tbl_users.id as usrID,
tbl_users.name as usrNAME,
tbl_users.location as usrLOCATION,
tbl_users.postcode as usrPOSTCODE,
tbl_blocking.id as blockID,
tbl_blocking.user as blockUSER,
tbl_blocking.blocking as blockBLOCKING,
tbl_blocking.date as blockDATE,
tbl_blocking.active as blockACTIVE,
tbl_photos.profile as photosPROFILE,
tbl_photos.photo_link as photoLINK,
tbl_photos.default_photo as photoDEFAULT
FROM tbl_status
LEFT JOIN tbl_users ON tbl_status.from_user = tbl_users.id
LEFT JOIN tbl_blocking ON tbl_status.from_user = tbl_users.id
LEFT JOIN tbl_photos ON tbl_photos.profile = tbl_users.id
WHERE tbl_status.deleted = '0' AND (tbl_photos.default_photo IS NULL OR tbl_photos.default_photo = '1')
AND (tbl_blocking.user = :who AND tbl_blocking.blocking !=who) OR IS NULL
ORDER BY tbl_status.date desc
";
实现这一点的一种方法是对tbl_blocking
使用类似以下的ON
子句(一开始似乎有点偏离):
LEFT JOIN tbl_blocking
ON tbl_blocking.blocking = tbl_status.from_user
AND tbl_blocking.user = :who
然后包括以下WHERE子句:
WHERE ....
AND tbl_blocking.id IS NULL