[英]SQL - Get records from one table that aren't “LIKE” in another table
我有兩個表格:表格: 產品和帖子
表格產品的字段模型的值為“ AH0002”,“ O-PO-201”,“ O-PO-304”等。表格帖子的字段post_title的值為“產品AH0002最好”,“紅色O-PO- 201真的很好”。
我需要顯示的產品行中其名稱未出現在posts表中(在post_title字段中)。
如何在mysql中做到這一點?
嘗試:
select pr.*
from products pr
left join posts po
on post_title like concat('%', pr.model, '%')
where post_title is null
上面假設mysql語法,它會因數據庫而略有不同。
我想你想要這樣的東西:
SELECT p.*
FROM products p
WHERE NOT EXISTS (SELECT 1 FROM posts WHERE post_title LIKE '%' + p.model + '%')
此語法假定使用Microsoft SQL Server。
對於MySQL,只需將LIKE子句更改為LIKE CONCAT('%',p.model,'%')
使用LIKE
select *
from products A
where model not in (
select model
from posts
inner join products
on post_title like concat('%',model,'%')
)
看一下SQL Fiddle
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.