下面是我的问题:
它没有从WHERE子句“2020-06-18”中获得确切的日期。 它显示了我所有的日期???
SELECT t.*
FROM (SELECT a.cheval,
a.numero,
a.jour,
a.hippo,
a.jockey,
a.entraineur,
a.typec,
a.partant,
a.dist,
a.cl,
b.tempscourse,
a.poidmont,
a.vha
FROM p_mu.cachedate AS a
INNER JOIN p_mu.caractrap AS b
ON a.comp = b.comp) t
WHERE EXISTS (SELECT 1
FROM p_mu.cheval
WHERE cheval = t.cheval)
IN (select 1 From p_mu.cachedate where jour = "2020-06-18");
你似乎想要的逻辑是:
WHERE EXISTS (SELECT 1
FROM p_mu.cheval c
WHERE c.cheval = t.cheval
) AND
t.jour = '2020-06-18';
也就是说,您的查询正在查找子查询中exists
的结果。 exists
返回0
或1
--相当于“false”和“true”。 子查询只返回1
。 因此,当exists
为true时,则返回所有行--没有筛选,因为唯一的条件始终为true。