gpt4 book ai didi

php - MySQL:从多个表中选择嵌套列表

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

我正在开发一款游戏,其中有一些图像,其中每个图像都有一些关键字,每个关键字都有一个分数。

我想获取所有图片,以及gameId的关键字(带分数)

我的数据库结构是这样的:

游戏

  • ID

图片

  • ID
  • 游戏ID
  • 图片网址

关键字

  • 关键字
  • 得分
  • 图片ID

我想获得如下所示的 JSON 响应:

{
gameId: 1,
images: [
{
imageId: 1,
keywords: [
{
keyword: "keyword1",
score: 1234
}...
]
}...
]
}

我的 SQL 查询如下所示:

SELECT g.*, (SELECT i.*, kw.* 
FROM image i LEFT OUTER JOIN keywords kw on kw.imageId=i.id
where i.gameId = g.id) as images
FROM games g LEFT OUTER JOIN users u on u.id=g.byUser WHERE g.id = 1

但我收到此错误:

1241 - Operand should contain 1 column(s)

我做错了什么?我不能在响应中嵌套数组吗?

最佳答案

不,您不能在选择列表中嵌套数组。

也许你需要这个:

SELECT g.*, i.*, kw.* 
FROM games g LEFT OUTER JOIN users u on u.id=g.byUser
LEFT OUTER JOIN image i on i.gameId = g.id
LEFT OUTER JOIN keywords kw on kw.imageId = i.id
WHERE g.id = 1;

但某些行中会有额外的 g.* 值

关于php - MySQL:从多个表中选择嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26639298/

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