gpt4 book ai didi

PHP/MySQL 组合两个查询以减少循环

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

我有以下查询,谁的结果然后循环运行另一个查询并检索另一组结果,但我想将这些结果组合起来,这样我就不会运行这么多查询并加快一切速度,但我已经尝试了几次迭代,要么得到 null 结果,要么得到语法错误。所以在这里寻找一些社区魔法。

查询1:

SELECT tou_tracking_start, tou_tracking_end, tou_tracking_timestart,
tou_tracking_timeend, tou_tracking_units, daytype_ID
FROM db_tou_tracking
WHERE ICP_ID = '39'
AND (tou_tracking_start >= '2013-01-01' AND tou_tracking_end <= '2013-12-31')

循环输出结果,然后在下一个查询中使用:

SELECT rates_tou_rate, rates_tou_PPD FROM db_rates_tou 
WHERE (rates_tou_start <= '" .$tou_tracking_start .
"' AND rates_tou_end >= '" . $tou_tracking_end . "')
AND (rates_tou_timestart <= '" . $tou_tracking_timestart .
"' AND rates_tou_timeend >= '" . $tou_tracking_timeend . "')
AND daytype_ID = ".$tou_tracking_daytype_ID."
LIMIT 1

如果这些可以组合,那么我只需要选择:

  • tou_tracking_start
  • tou_tracking_end
  • rates_tou_rate
  • rates_tou_PPD

非常感谢您对此提供的帮助。

最佳答案

我会使用 JOIN

SELECT tt.tou_tracking_start, tt.tou_tracking_end, rt.rates_tou_rate, rt.rates_tou_PPD
FROM db_tou_tracking tt
JOIN db_rates_tou rt ON rt.daytypeID = tt.daytype_ID
AND (tt.tou_tracking_start >= '2013-01-01' AND tt.tou_tracking_end <= '2013-12-31')

tt 是 db_tou_tracking 的别名,rt 是 db_rates_tou 的别名。

我假设它们在两个表中都与 daytype_ID 匹配,并且存在 1 对 1 的关系。

关于PHP/MySQL 组合两个查询以减少循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28998754/

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