【问题标题】:My Sql Query to find data in another field for multiple rowsMy Sql Query 在另一个字段中查找多行数据
【发布时间】:2018-07-08 01:33:27
【问题描述】:

我想在单个 mysql 查询中找到以下场景的数据

假设我有一个users 表:

id | name
 1 |   A
 2 |   B

events表:

id | event_name  
 1 |     E1
 2 |     E2

event_request_sent表:

id | event_id | user_id
 1 |     1    |    1
 2 |     1    |    2
 3 |     2    |    1

我需要类似 json 输出的输出

[{
    "event_name": "E1",
    "user_Details": [{
        "name": "A",
        "id": "1"
    }, {
        "name": "B",
        "id": 2
    }]
}, {
    "event_name": "E2",
    "user_Details": [{
        "name": "A",
        "id": "1"
    }]
}]

请帮助我,我尝试使用连接,但根据 event_request_sent 表中的用户数,获得了事件 E1 的 2 个条目和 E2 的一个条目。我没有得到这样的输出。

【问题讨论】:

  • 感谢您的评论,我已编辑

标签: mysql


【解决方案1】:
Select event.events_name, GROUP_CONCAT(user.name) AS name, GROUP_CONCAT(user.id) AS id
from user user_table,
event events_table,
eventreq events_request_table
where
event.id = eventreq.event_id
and user.id = eventreq.user_id

我假设这个选择查询会完美运行。

【讨论】:

  • FROM 子句中指定多个表是old-style JOINing
  • @lolbas 我是编程新手,所以我还在学习,但我想这对这个问题有用,不是吗?对于我的查询,我很抱歉,因为一些有经验的人可能无法阅读它。
  • Farhan ,感谢您的回答,但我认为您没有得到我的要求。这不是我需要的
  • @ak001 我现在使用了组 concat,它应该是在同一行中打印 id 和 name 与事件名称,如果这是你想要的,你现在可以检查它吗?
  • 这不是解决方案,为了更了解您可以再次参考我的问题。 & 再次感谢您的努力
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
相关资源
最近更新 更多