-2

这是我的查询:

在 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");

4

1 回答 1

1

您似乎想要的逻辑是:

WHERE EXISTS (SELECT 1 
              FROM p_mu.cheval c
              WHERE c.cheval = t.cheval
             ) AND
      t.jour = '2020-06-18';

也就是说,您的查询正在寻找exists子查询中的结果。exists返回01-- 相当于“false”和“true” 。子查询只返回1。因此,当exists为真时,将返回所有行——没有过滤,因为唯一的条件始终为真。

于 2020-06-23T11:55:21.363 回答