mysql - SELECT,从 JOIN 上的 WHERE 获取反转结果
问题描述
我有这个 MySQL 请求让所有商店在特定日期有发票:
SELECT sh__shop.id AS shop_id, sh__shop.name,
sh__shop_invoice.*
FROM sh__shop
LEFT JOIN sh__shop_invoice ON sh__shop_invoice.shop_id = sh__shop.id
WHERE sh__shop_invoice.month_commission LIKE "2021-08-01"
但我看不出如何得到逆。所有在特定日期没有发票的商店。我做不到NOT LIKE "2021-08-01"
。
解决方案
您可以使用not exists
.
SELECT sh__shop.id AS shop_id, sh__shop.name
FROM sh__shop
WHERE
NOT EXISTS (SELECT * FROM sh__shop_invoice i
WHERE i.shop_id = sh__shop.id
AND i.month_commission LIKE "2021-08-01");
推荐阅读
- hibernate - 可选的 ManyToOne 产生 javax.persistence.EntityNotFoundException: Unable to find
- spring-boot - 如何在 Azure DevOps 中配置 Spring Boot 应用程序环境变量值
- javascript - D3.js:实时旭日形分区数据:重新创建层次结构?
- python - 我如何使用正则表达式从 cloudwatchloginsights 查询的输出中过滤?
- forms - Shopify Liquid 联系表发送到多个电子邮件
- excel - 如何在 excel VBA 中使用旧的对象库版本?
- javascript - javascript中“super”关键字的复杂性
- oracle - PLSQL: CLOB 数据返回 ORA:06502
- java - 你能帮忙解决这个问题吗,为什么它不在运行线程中求和?
- ios - 使嵌入 Storyboard ViewController 的 SwiftUI 视图使用全屏宽度