mysql - 如何在 Mysql Query 中排除特定行
问题描述
我在下面提到了两个表:
表格1
ID Part1 key Unique_1
ARF-11 Aekjh aer-ert IYT-15
ARF-12 Aferf aee-sta IYT-15
ARF-13 Berfe aer-ert IYT-15
ARF-14 Aeret aty-ert IYT-16
ARF-15 xrete ant-ert IYT-16
ARF-16 srete ant-ert IYT-17
表2
Key Value
aer-ert Some
aee-sta ALL
aty-ert Few
ant-ert Less
我只想获取那些对于每个Unique_1
值都不应该有 value=ALL 或 ( key!=aee-sta
) 的行。
删除这样的行,其中任何Unique_1
值都有 Value=ALL。
所需输出:
ID Part1 key Unique_1 Value
ARF-14 Aeret aty-ert IYT-16 Few
ARF-15 xrete ant-ert IYT-16 Less
ARF-16 srete ant-ert IYT-17 Less
解决方案
您可以尝试以下方法
SELECT t1.ID, t1.part1, t1.key, t1.unique_1, t2.value FROM table1 t1
INNER JOIN (
SELECT DISTINCT t1.unique_1 FROM table1 t1 INNER JOIN table2 t2
ON t1.key = t2.key AND (t2.`value` IN('All') OR t2.`key` IN('aee-sta'))
) AS tt
ON tt.unique_1 != t1.Unique_1
INNER JOIN table2 t2 ON t2.key = t1.key
试试这个演示
推荐阅读
- java - logback 如何以预定义的 json 格式格式化 Spring Boot 日志?
- iis - HTTP 错误 500.19 - windows server 2012 R2 中的内部服务器错误
- php - Laravel:没有什么可迁移的
- ruby-on-rails - 如何在部分重构或使包含具有通用结构的选项卡的 Haml 文件的代码更干
- join - 合并而不重写一张表
- php - 如何为 INSERT INTO 语句选择数据库
- android - 如何使用默认的 Android 电子邮件应用程序发送带附件的电子邮件 - Delphi RIO
- android - 自适应 ic_launcher 前景在 Android Studio 中调整大小,但不在开发设备上
- google-sheets - 影响其他行的过滤函数
- sql - 播放列表下歌曲位置的数据库设计