【问题标题】:MySQL - Select WHERE NOT EXITS (code inside)MySQL - 选择不存在的地方(里面的代码)
【发布时间】:2015-02-12 19:20:58
【问题描述】:

谁能告诉我我做错了什么?

我想要来自客户 INNER JOIN clientes.id = sat.clientid 的所有 sat 表和 id、cliente、direccion、telefono,但如果这些字段在 2015 年和 02 月不存在,我只想要这些字段。

嗯,在坐席上,我有帮助票,他们的描述......我想知道这个月和今年我没有访问过哪些“id”。

**抱歉是英文,谢谢

<i> 
SELECT sat.*, clientes.id, clientes.cliente, clientes.direccion, clientes.telefono FROM sat INNER JOIN clientes ON sat.clientid = clientes.id WHERE not exits 
(SELECT sat.*, clientes.cliente 
        FROM sat INNER JOIN clientes ON sat.clientid = clientes.id
        WHERE YEAR(sat.fecha_trabajo)='2015' AND MONTH(sat.fecha_trabajo)='02'
) 

</i>

【问题讨论】:

  • sat.fecha_trabajo 是什么样的?它是 varchar 还是日期字段?
  • 这只是一个简单的错字(WHERE NOT EXITS 而不是WHERE NOT EXISTS)吗?

标签: mysql where exists


【解决方案1】:

我不知道“sat”到底代表什么,但这里有一个猜测:

SELECT sat.*, clientes.id, clientes.cliente, clientes.direccion, 
clientes.telefono FROM sat INNER JOIN clientes ON sat.clientid = clientes.id 
WHERE not exits 
(SELECT * 
    FROM sat LEFT JOIN clientes ON sat.clientid = clientes.id
    WHERE sat.fecha_trabajo BETWEEN '2015-02-01' AND '2015-02-28'
) 

【讨论】:

    【解决方案2】:

    我只是打错了“存在”。

    但是,我还有一个问题。我在 MySQL 控制台中执行此操作,但它不起作用。如果您使用 YEAR(fecha_trabajo)=YEAR('2015-02-01') 效果很好!但是命令 MONTH 不起作用,我正在网站的另一个部分使用它。

    错误 1064。我刚刚下载了带有最新 PHP 版本的 XAAMP。

    SELECT sat.*, clientes.cliente 
        FROM sat INNER JOIN clientes ON sat.clientid = clientes.id
        WHERE MONTH(fecha_trabajo)= MONTH('2015-02-01') 
    

    【讨论】:

      猜你喜欢
      • 2016-07-16
      • 2010-10-29
      • 2016-05-20
      • 1970-01-01
      • 2013-08-05
      • 2011-12-17
      • 1970-01-01
      • 2017-05-26
      • 1970-01-01
      相关资源
      最近更新 更多