gpt4 book ai didi

php - MySQL在不匹配时显示空记录

转载 作者:行者123 更新时间:2023-11-29 13:10:32 24 4
gpt4 key购买 nike

我有一些 LEFT JOIN 的查询。我试图让其中之一在一个子句不匹配时显示 NULL 匹配。

SELECT *, sr.id as role_id, ss.id as scheduled_entry_id
FROM T_STAFF_ROLE AS sr
LEFT JOIN T_STAFF_SCHEDULE AS ss
ON sr.id = ss.staff_role_id
LEFT JOIN T_BOOKINGS_ADMIN AS ba
ON ba.id = ss.admin_user_id
AND ss.client_booking_id='12495' // unreal id
ORDER BY sr.id

我希望始终显示 T_STAFF_ROLE 条目。
如果此处存在匹配项,则 ss.client_booking_id=".$id_booking.' 显示该匹配项,否则返回具有 NULL 值的字段。

我尝试使用 AND (就像现在一样),但随后我也得到了其他 ss.client_booking_id 的所有结果。

尝试使用WHERE,但如果没有匹配,我什么也得不到。我仍然希望在 sr 上每行获得一个条目。我认为这就是“左”连接的重点

我的逻辑或代码哪里错了?

我渲染的查询:

SELECT *, sr.id as role_id, ss.id as scheduled_entry_id 
FROM staff_role AS sr
LEFT JOIN staff_schedule AS ss ON sr.id = ss.staff_role_id
LEFT JOIN admin_users AS ba ON ba.id = ss.admin_user_id
AND ss.client_booking_id=336 ORDER BY sr.id

我的 sr 有 9 行,已修复。出租车、清洁工、导游等不同的角色。 ss 是特定角色/人员的预订。我在 PHP 上使用此查询来生成 HTML,并希望它为所有“角色”生成数据,以防其中一些角色不匹配。

最佳答案

条件 AND ss.client_booking_id=".$id_booking.' 位置错误。它应该是与 T_STAFF_SCHEDULE 连接的一部分。在您当前的查询中,您将获得与 sr.id 匹配的所有 T_STAFF_SCHEDULE,以及当其父 T_STAFF_SCHEDULE 的任何T_STAFF_SCHEDULE$id_booking 匹配时的所有 T_BOOKINGS_ADMIN >.

嗯,我不知道每个列和表的含义,但我认为它应该看起来像这样:

 "SELECT *, sr.id as role_id, ss.id as scheduled_entry_id
FROM ".T_STAFF_ROLE." AS sr
LEFT JOIN ".T_STAFF_SCHEDULE." AS ss
ON sr.id = ss.staff_role_id
AND ss.client_booking_id=".$id_booking."
LEFT JOIN ".T_BOOKINGS_ADMIN." AS ba
ON ba.id = ss.admin_user_id
ORDER BY sr.id";

关于php - MySQL在不匹配时显示空记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22157376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com