我有两张 table 。主表名为“places”:
和一个名为“place_meta”的辅助表:
查询地点时,我想将 place_meta 表中具有相同 place_id 的行附加到地点结果中。它应该看起来像:
{
id: 1,
slug: "test",
status: "active",
name: "test",
excerpt: "blah blah",
description: "bla blah blah",
test_url: "https://test.de",
test2_url: "https://test2.de"
}
或者类似
{
id: 1,
slug: "test",
status: "active",
name: "test",
excerpt: "blah blah",
description: "bla blah blah",
meta: {
test_url: "https://test.de",
test2_url: "https://test2.de"
}
}
尝试过连接,但真的不知道如何如愿得到它。
最佳答案
这适用于两个预定义的元值(test_url 和 test2_url),但如果您有多个元字段,则不是动态解决方案。
SELECT P.*
,PM1.meta_value AS 'test_url'
,PM2.meta_value AS 'test2_url'
FROM Places P
LEFT JOIN place_meta PM1 ON PM1.place_id = P.id AND PM1.meta_key = 'test_url'
LEFT JOIN place_meta PM2 ON PM2.place_id = P.id AND PM2.meta_key = 'test2_url'
FOR JSON AUTO
关于mysql - SQL附加其他表的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53848317/