如何基于其他表值从表中查找不存在的记录

问题描述

所以我有两个表,这个表是books

books

这是payment

payment

现在我要选择books中是否有类似(select * from a like a.field like '%blabla%title甚至相同的title但在{{ 1}}

我尝试过不存在,但是我不确定,因为执行查询的过程很长,所以我认为情况并非如此。

解决方法

鉴于这些信息,我试图举一个例子。我希望这会有所帮助,并使您接近所需的东西。


CREATE TABLE books
    (`number` int,`verification_date` date,`title` varchar(6))
;
    
INSERT INTO books
    (`number`,`verification_date`,`title`)
VALUES
    (14116299,'2020-05-01 18:00:00','Title1'),(12331189,'2020-07-01 18:00:00','Title2'),(13123321,NULL,'Title4'),(12318283,'2020-12-31 18:00:00','Title3'),(12318284,'2021-01-31 18:00:00','Title2')
;



CREATE TABLE payments
    (`number` int,`title` varchar(6),`pay_date` date)
;
    
INSERT INTO payments
    (`number`,`title`,`pay_date`)
VALUES
    (14116299,'Title1','2020-05-01 18:00:00'),'Title3','2020-12-31 17:00:00')
;

我们正在选择书籍中的所有列,并仅在付款表中保留不匹配的记录。有关更多信息:How to select rows with no matching entry in another table?。然后添加一个附加的where子句以在books表中搜索标题。

SELECT b.*
FROM books b
LEFT JOIN payments p ON b.number = p.number
WHERE p.number is NULL
    AND b.title LIKE'%2'

输出:

number  verification_date   title
12331189    2020-07-01      Title2
12318284    2021-01-31      Title2

SQL Fiddle

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...