MySQL - 选择不存在的地方(里面的代码)
Posted
技术标签:
【中文标题】MySQL - 选择不存在的地方(里面的代码)【英文标题】:MySQL - Select WHERE NOT EXITS (code inside) 【发布时间】: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
)吗?
【参考方案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')
【讨论】:
以上是关于MySQL - 选择不存在的地方(里面的代码)的主要内容,如果未能解决你的问题,请参考以下文章