gpt4 book ai didi

mysql - `right join` 以正确的方式访问 `meta` 表

转载 作者:行者123 更新时间:2023-11-30 21:27:54 25 4
gpt4 key购买 nike

我的数据库中有这两个表:

user_post:
id user_id title date_added
12 220 the post 2019-02-12

user_post_meta:
id post_id post_key post_value
2 12 desc this is a description
3 12 image http://img.com/img.jpeg

我正在尝试编写一个查询,该查询应通过 user_id 获取所有 posts,同时加入并返回来自 user_post_meta 的所有行。但是加入只会返回 post_meta

中的最后一行
        SELECT
up.id as up_id,
upm.post_key as upm_post_key,
upm.post_value as upm_post_value
FROM `user_post` up
RIGHT JOIN `user_post_meta` upm
ON upm.`user_post_id` = up.`id`
WHERE up.user_id = 220

上面的查询只会返回 post_meta 的最后一行,显然我在 where 中的内容会使 Right join 无效。

user_post_meta 返回所有结果的正确方法是什么?

编辑

我在上面的查询中有一个用于另一个连接表的 group by 子句(我没有提到)导致了这个问题。所以,这个问题可以被认为是无关紧要的。

最佳答案

您必须使用 LEFT JOIN。

为什么?在您的 RIGHT JOIN 帖子中,您将 user_post_meta 作为结构的主表(观点)。该逻辑与您试图实现的目标相去甚远。

LEFT JOIN `user_post_meta` upm
ON upm.`user_post_id` = up.`id`

是正确的做法。

关于mysql - `right join` 以正确的方式访问 `meta` 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57986561/

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