[英]MySQL: Select nested list from multiple tables
我正在開發一個有一些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列
我究竟做錯了什么? 我不能在響應中嵌套一個數組嗎?
不,您不能在選擇列表中嵌套數組。
也許您需要這樣:
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。*值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.