gpt4 book ai didi

mysql - 选择与不同值匹配的行来检索公共(public)字段

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

我的 table 是这样设置的。

id plan_id name rule
1 3 dep 4
2 3 sta 3
5 4 pri 7
6 1 dep 4

可读的图例; dep = 部门,sta = 状态,pri = 优先级

这个想法是我想检索与指定条件匹配的“plan_id”。我尝试了一些我认为可行的不同查询。这是最接近的。我正在尝试找出如何最好地构建查询。虽然我想知道是否有更好的方法来编写这个查询。在某些情况下,可能只需要匹配部门。在其他情况下,我可能需要匹配所有三个或仅两个。

在这种情况下,我想找到同时包含状态和部门的计划。我需要它来匹配状态 == 3 和部门 == 4。下面的代码应该为 plan_id 返回“3”。

SELECT o.plan_id AS s_id
FROM `plan_criteria` o
LEFT JOIN plan_criteria pc
ON pc.plan_id=o.plan_id
WHERE (o.name IN ('sta') AND o.rule_match=3)
AND (pc.name IN ('dep') AND pc.rule_match=4)

编辑--

一个计划还可以包含多个部门/状态/优先级。

最佳答案

SELECT o_plan_id 
FROM `plan_criteria`
WHERE `o_name` = "sta"
AND `rule_match` = "3"
AND `pc_name` = 'dep'
AND `pc_rule_match` = '4'

我会将两者放在一起,然后在表中使用 o_ 和 pc_ 来简化内容。只要你的 table 不要太疯狂

关于mysql - 选择与不同值匹配的行来检索公共(public)字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31212580/

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