gpt4 book ai didi

mysql - 忽略关系表上其他用户的行

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

我一直在尝试自己解决这个问题,但似乎无法解决。我基本上有 2 个示例表:positionposition_meta

预期结果(用户 ID:1)

------------------------------------------------
id position user_id
------ ---------------------------- ---------
1 Physical Therapist Assistant 1
2 Brake Machine Setter (NULL)
3 Community Service Manager 1
------------------------------------------------

代替

-----------------------------------------------
id position user_id
------ ---------------------------- ---------
1 Physical Therapist Assistant 2
1 Physical Therapist Assistant 1
2 Brake Machine Setter (NULL)
3 Community Service Manager 1
3 Community Service Manager 3
-----------------------------------------------

我的示例表

Table: position
-----------------------------------------
id position
------ ---------------------------------
1 Physical Therapist Assistant
2 Brake Machine Setter
3 Community Service Manager
-----------------------------------------

Table: position_meta
------------------------------
id user_id position_id
------ ------- -------------
1 1 1
2 2 1
3 3 3
4 1 3
------------------------------

如您所见,有些用户在 position_meta 中有条目,而有些则没有。但是是否可以显示所有位置,无论它们在position_meta中是否有条目。但是,如果当前用户(例如user_id 1)在position_meta中有一个条目,它将显示它并忽略可能也选择了相同位置的任何其他用户行(防止重复行)。

如果 position_meta 条目完全来自另一个 user_id(不是 user_id 1),则显示 NULL 或任何拥有它的用户的数量,因为我无论如何都不会检查它。

这是 MySQL 能做的事情吗?

编辑:这是我使用的查询,它得到了错误的结果:

SELECT p.id, p.position, pm.user_id FROM `position` p
LEFT JOIN position_meta pm ON p.id = pm.position_id
ORDER BY p.id

最佳答案

基于您提供的预期输出(如果您显示了用于获取结果的 SQL,即使它是错误的,也会很有帮助)...

SELECT p.id, p.position, pm.uer_id
FROM position p
LEFT JOIN position_meta pm
ON p.id=pm.position_id
AND pm.user_id=1

请注意,过滤表达式是 join 子句的一部分,而不是 where 子句。

关于mysql - 忽略关系表上其他用户的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37921809/

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