首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:使用表2中的值,而不是表2中的表1

MySQL:使用表2中的值,而不是表2中的表1
EN

Stack Overflow用户
提问于 2015-02-03 13:19:48
回答 1查看 44关注 0票数 2

我有一个用PHP和MySQL编写的传输计划器,为了每天获取任务规则,我使用以下查询:

代码语言:javascript
复制
SELECT  planning.*,     
        planning_dagen.planning_id, 
        planning_dagen.dagen,
        planning_dagen.data_import,
        routenummer_wijzigingen.routenummer AS temp_routenummer
FROM planning 
LEFT JOIN planning_dagen
USING (planning_id)
LEFT JOIN routenummer_wijzigingen
USING (planning_id)
WHERE :datum >= planning.datum
AND :datum <= geldig_tot
AND (frequentie = 'dagelijks' AND dayofweek(:datum) = planning_dagen.dagen
OR (frequentie = 'eenmalig' AND date(:datum) = planning.datum)
OR (frequentie = 'wekelijks' AND 0 = (abs(datediff(:datum, planning.datum)) % 7))
OR (frequentie = 'twee-wekelijks' AND 0 = (abs(datediff(:datum, planning.datum)) % 14))
OR (frequentie = 'maandelijks'
AND ceil(dayofmonth(:datum)/7) = ceil(dayofmonth(planning.datum)/7)
AND dayofweek(:datum) = dayofweek(planning.datum)))
AND dayofweek(:datum) <> '1'
AND dayofweek(:datum) <> '7'

planning表中,有一个名为routenummer (routenumber)的列,用于大多数条件(标准路由编号)。但是,正如您所看到的,我还有一个routenummer_wijzigingen表,它用于在特定的一天给任务一个不同的路由编号。

例如,我有一个任务每星期二和星期三返回一次,并且有10号路由。但是在星期二2015-02-03上,我需要由routenumber 9来完成这个任务。因此,我在routenummer_wijzigingen表中插入了一个规则,该表有以下列:

代码语言:javascript
复制
routenummer_wijzigingen_id
planning_id
routenummer
datum

因此,当日期被选中,并且该日期和planning_id存在于routenummer_wijzigingen表中时,它必须从routenummer_wijzigingen表而不是planning表中获取路由号。我怎样才能做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-03 13:31:05

您应该使用routenummer_wijzigingen表(包括datum)修改联接条件。然后,您应该在CASE子句中使用SELECT来决定选择哪个routenummer

代码语言:javascript
复制
SELECT  planning.*,     
    planning_dagen.planning_id, 
    planning_dagen.dagen,
    planning_dagen.data_import,
    CASE
        WHEN routenummer_wijzigingen.routenummer is not NULL
            THEN routenummer_wijzigingen.routenummer
        ELSE planning.routenummer
    END AS temp_routenummer
FROM planning
...
LEFT JOIN routenummer_wijzigingen rw on 
    planning.planning_id=rw.planning_id and rw.datum=...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28299951

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档