gpt4 book ai didi

php - 如何编辑我的查询以生成正确的 IF/Join 语句?

转载 作者:行者123 更新时间:2023-11-30 21:55:17 24 4
gpt4 key购买 nike

我的结构解释如下:我有 2 个表,alerts_conditionsalerts_list

我想要做的是一个将在两个表中查找的查询,但有时信息只会从一个表中收集,有时会从两个表中收集。

我的查询查看是否在 alerts_conditions 和/或 alerts_list 上找到了 id

id 始终在 alerts_list 表中找到。因此,如果 idalerts_conditions 上找到,则意味着它在 alerts_list 中也有一行。

但是,如前所述,在某些情况下,id 只能在 alerts_list 上找到。

现在,如果 id 仅在 alerts_list 上找到,我会得到混合数据。我的问题是

  1. 如何更改我的查询,以便当在 alerts_list找到 id 时,alerts_conditions 的列显示为空?
  2. id两个 表中都找到时从两个表中获取数据?

在这种情况下,数字 50 是 id

SELECT * 
FROM alerts_conditions,
alerts_list
WHERE (alerts_conditions.alerts_conditions_alert = 50 OR alerts_list.alerts_id=50)
AND alerts_conditions.company_id = 1
LIMIT 1

注意

company_id 与问题无关,必须从任何子句中删除。

最佳答案

正确的写法是将条件放在 on 子句中的 alerts_conditions

SELECT ac.*, al.*
FROM alerts_list al LEFT JOIN
alerts_conditions ac
ON ac.alerts_conditions_alert = al.alerts_id AND
ac.company_id = 1
WHERE al.alerts_id = 50
LIMIT 1 ;

关于php - 如何编辑我的查询以生成正确的 IF/Join 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45472949/

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