提问者:小点点

其中在整个列Mysql[closed]中


下面是我的问题:

它没有从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");


共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为true时,则返回所有行--没有筛选,因为唯一的条件始终为true。