gpt4 book ai didi

MYSQL查询创建字段Y o N based with join two tables

转载 作者:行者123 更新时间:2023-11-30 23:06:54 25 4
gpt4 key购买 nike

我有 3 个表; EVENTSUSERUSER_HAS_EVENT

EVENTS : idEvents - name 

Event Table USER : idUser - 名称 User Table

USER_HAS_EVENT : idUser - idEvent

user_has_event table

如果 USER_HAS_EVENT 中存在单个事件的记录,我想从事件表中选择所有事件并创建有条件的字段(例如新动态字段的名称 = 预注释)为 Y 或 N对于确定的 UserId

Example and expected result Example Result

userid 是从 php 动态发送到查询中的,是查询中的一个参数。

抱歉英语不好。

提前致谢。

最佳答案

有很多方法可以做到这一点。由于您在示例中提供了不同的表名和列名,您可能无法直接使用我的建议。

由于您想要给定用户预订或不预订的所有事件,我更喜欢左连接,假设用户只能预订一次事件。 Subselect、union 或 group by 构造是其他选择。

MySQL 中的 isnull 函数 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_isnull) 在您的示例中生成 1 或 0 而不是 Y 或 N。我实际上无法测试它,但它可能会完成这项工作:

select
e.id,
e.name,
isnull(r.user_id) as 'reserved'
from
event e left join reservation r on e.id = r.event_id
where
r.user_id = 56
or
r.user_id is null

where 子句中的第一个表达式仅限于我们给定的用户,第二个表达式确保还将返回该用户(或任何用户)没有保留的事件。当然,user_id 应该是您代码中的一个参数。

关于MYSQL查询创建字段Y o N based with join two tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21513426/

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