我试图查看一个类似的问题,但找不到它(如果我错过了链接,请随时将其关闭为重复)。
这是我的结构:
subscriptions (id, day, site_id)
sites (id, name, pole_id)
poles (id, name, type_id)
poletypes (id, name)
这是我的查询:
SELECT sub.id FROM `subscriptions` sub
LEFT JOIN sites s ON sub.site_id = s.id
LEFT JOIN poles p ON p.site_id = s.id
WHERE sub.day BETWEEN '2013-01-01' AND '2013-01-30' AND s.id = 2 AND p.type_id = 3
为了简化,我希望订阅发生在2013-01-01
和之间2013-01-30
,发生在 Site id2
和 Pole type_id3
中。
一切正常,除了pole.type_id
. 我可以将其更改为我想要的任何内容,它完全被忽略了。
由于一个站点可以有多个极点,因此我没有直接关系。subscriptions
包含指向site
(通过 site_id)的链接,但我为极点做了其他工作,它poles
与 有直接链接site
,因此忽略了type_id
约束。
但是,我该怎么做才能过滤type_id
?