碰巧的是,在我提出问题之后,我找到了解决办法。以下是我遇到的问题:
我的数据库表是:
预订有这样的字段: id,event_id,.
注释具有以下字段的:id、booking_id、event_id
和事件明显地与ID和其他字段。另外,对此主题不重要
我有这样的工作要求:
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个,。我试图添加以下内容(以查询上述内容):
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中有足够简单的解决方案吗?如果需要的话,我可以提供更多的信息,或者在评论中更清楚地说明这一点。
发布于 2021-05-27 12:58:40
我将其添加到选择字段中:
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'而且效果很好。我现在有了所需的数据,并且可以通过注释计数来过滤它。
https://stackoverflow.com/questions/67722669
复制相似问题