簡體   English   中英

SQL-從一個表中獲取不是在另一個表中“喜歡”的記錄

[英]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語法,它會因數據庫而略有不同。

SQL小提琴

我想你想要這樣的東西:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM