将SQL查询组合在一起

杰克比

我正在尝试简化当前的查询代码。是否有将两个查询合并为一个更简单的方法?

到目前为止,这是我尝试过的。虽然看起来确实很凌乱和笨拙。该查询请求所有客户端

SELECT * FROM clients ORDER BY name DESC

然后,我里面有另一个请求,以查找客户是否有预订

SELECT * FROM bookings WHERE client_id=$client_id AND done=0

“完成”表示作业是否完成,并且每个客户一次只能有1个未完成的作业。

说明:

该代码需要显示所有客户,并且如果客户有一个预订,并且如果另一个数据库返回结果,则预订按钮将不会显示,如果没有结果(即该客户以前的所有预订均为1),则为预订按钮出现。

专线小巴:

我想你要:

select c.*, coalesce(b.done, 1) completed
from clients c
left join bookings b on b.client_id = c.client_id and b.done = 0

这将尝试booking为每个客户端查找未完成的行completed结果集中的包含0客户端是否有未完成的行,否则为1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章