Mysql 在多个条件下使用多个联接
我尝试使用几个helper表来显示计时器的状态。(使用php的浏览器) 辅助表用于在语言之间切换 下面是计时器类型的帮助器表:Mysql 在多个条件下使用多个联接,mysql,sql,Mysql,Sql,我尝试使用几个helper表来显示计时器的状态。(使用php的浏览器) 辅助表用于在语言之间切换 下面是计时器类型的帮助器表: +-------------+------+------------------+ | lfdLanguage | Type | TText | +-------------+------+------------------+ | 0 | 0 | Puls | | 0 |
+-------------+------+------------------+
| lfdLanguage | Type | TText |
+-------------+------+------------------+
| 0 | 0 | Puls |
| 0 | 1 | steigende Flanke |
| 0 | 2 | fallende Flanke |
| 1 | 0 | Pulse |
| 1 | 1 | rissing edge |
| 1 | 2 | falling edge |
+-------------+------+------------------+
对于活动日:
+-------------+--------+--------+
| lfdLanguage | Active | ACText |
+-------------+--------+--------+
| 0 | 0 | _ |
| 0 | 1 | X |
| 1 | 0 | _ |
| 1 | 1 | X |
+-------------+--------+--------+
通常我使用equi联接,但这里我想使用同一个助手表显示天的状态(即RunMonday…)
使用以下语句而不使用,其中HTT.lfdLanguage=0
可以正常工作
但在where语句中,我不能EXEXEXUTE。我得到一个错误:
(“错误1064(42000):……”)
知道如何将语言选择包含到联接中吗
谢谢你的帮助。
谢谢where子句出现在所有联接之后:
SELECT DISTINCT
T.lfdTimer,
T.Active,
T.Name,
T.Type, HTT.TText,
T.RunMonday, HTDA1.ACText,
T.RunTuesday, HTDA2.ACText,
T.RunWednesady, HTDA3.ACText,
T.RunThursday, HTDA4.ACText,
T.RunFriday, HTDA5.ACText,
T.RunSaturday, HTDA6.ACText,
T.RunSunday, HTDA7.ACText
FROM
Timer T
INNER JOIN HelpTimerType HTT ON (T.Type = HTT.Type)
LEFT JOIN HelpTimerDayActive HTDA1 ON (T.RunMonday = HTDA1.Active)
LEFT JOIN HelpTimerDayActive HTDA2 ON (T.RunTuesday = HTDA2.Active)
LEFT JOIN HelpTimerDayActive HTDA3 ON (T.RunWednesady = HTDA3.Active)
LEFT JOIN HelpTimerDayActive HTDA4 ON (T.RunThursday = HTDA4.Active)
LEFT JOIN HelpTimerDayActive HTDA5 ON (T.RunFriday = HTDA5.Active)
LEFT JOIN HelpTimerDayActive HTDA6 ON (T.RunSaturday = HTDA6.Active)
LEFT JOIN HelpTimerDayActive HTDA7 ON (T.RunSunday = HTDA7.Active)
WHERE HTT.lfdLanguage = 0
;
移除
WHERE
从您的内部连接来看,这是错误的语法。下次请共享完整的错误消息!只提供错误号而不提供描述是完全没有意义的。我想在所有表上选择正确的语言。甚至还有更多的问题。无论如何,谢谢。我知道这是件小事非常感谢您的支持。使用更多的帮助表也可以完美地工作。计时器表相当大。再次感谢
WHERE