首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将条件应用于子查询(MySQL)

问如何将条件应用于子查询(MySQL)
EN

Stack Overflow用户
提问于 2021-05-27 12:58:40
回答 1查看 29关注 0票数 0

碰巧的是,在我提出问题之后,我找到了解决办法。以下是我遇到的问题:

我的数据库表是:

预订有这样的字段: id,event_id,.

注释具有以下字段的:id、booking_id、event_id

和事件明显地与ID和其他字段。另外,对此主题不重要

我有这样的工作要求:

代码语言:javascript
复制
SELECT
    bookings.id as 'booking id',
    bookings.name as 'client name',
    events.title as 'event title',
    cities.title as 'City',
FROM bookings 
    JOIN events ON events.id = bookings .event_id 
    JOIN cities on events.city_id = cities.id
WHERE bookings.status = "new"
and bookings.id not in (SELECT booking_id 
                        FROM comments 
                        WHERE booking_id <> 0 
                        and booking_id is not null
                        )

,我想看到这样的事件的预订,在注释表中,这些事件的注释少于5个,。我试图添加以下内容(以查询上述内容):

代码语言:javascript
复制
SELECT
<...>
events.id as MY_VARIABLE 
<...>
WHERE
<...>
and (SELECT count(id) FROM comments WHERE comments.event_id = MY_VARIABLE and booking_id <> 0 and booking_id is not null) < 10

显然,这不起作用,我也不知道是否应该编写python脚本,它将存储每个事件的注释计数,然后将其用作从第一个查询中排除/包含数据的条件。

请帮助,在MySQL中有足够简单的解决方案吗?如果需要的话,我可以提供更多的信息,或者在评论中更清楚地说明这一点。

EN

回答 1

Stack Overflow用户

发布于 2021-05-27 12:58:40

我将其添加到选择字段中:

代码语言:javascript
复制
events.id as A,
    (SELECT count(comments.event_id)
    FROM events LEFT JOIN comments ON events.id = comments.event_id
    WHERE events.id = A and booking_id <> 0 and booking_id is not null) as 'Comment count'

而且效果很好。我现在有了所需的数据,并且可以通过注释计数来过滤它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67722669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档