我正在制作一款游戏,其中我有一些images
,其中每张图片都有一些keywords
,每个关键字都有一个分数。
我想通过gameId
我的数据库结构如下:
游戏
图像
关键字
我想获得一个如下所示的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 - 操作数应包含1列
我做错了什么?我不能在响应中嵌套数组吗?
答案 0 :(得分:0)
否则您无法在选择列表中嵌套数组。
也许你需要这个:
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。*值