问题描述
所以我有两个表,这个表是books
这是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