簡體   English   中英

比較不同表中的兩列

[英]Compare two columns from different tables

我知道這個問題已經問過幾次了,我確實讀了全部。 但是,我的情況幾乎沒有什么不同,我仍然無法通過下面的SQL語句獲得正確的結果。

我有兩個表,如下所示:

TABLE A
######################################################################
   |   ID   | IP_Address    | Username  | Comments
----------------------------------------------------------------------  
    1       128.        abc     travel to US
    2       127.        dzd     author
    3       127.        abc     It's not redundant at all. Not offering a single function
    4       124.        deb     I just lost laptop.  How do I report it?
-----------------------------------------------------------------------



TABLE B
######################################################################
   |   keywords     |
----------------------------------------------------------------------  
    author
    How do I report
-----------------------------------------------------------------------

我的意圖是在“注釋”列部分匹配表B中的關鍵字之一時,提取表A中的所有記錄。

這是查詢:

SELECT ID, IP_Address, UserName, Comments FROM TABLEA
FULL JOIN TABLEB
ON TABLEA.Comments LIKE TABLEB.Keywords
WHERE TABLEA.Comments IS NOT NULL AND TABLEB.Keywords IS NOT NULL

它可以工作,但只提取完全匹配項,而不是注釋的一部分。
在我的示例中,它提取的是“作者”記錄,而不是“我只是丟失了筆記本電腦。如何報告?” 記錄。

有沒有一種方法可以扭曲我的查詢以滿足我的要求?

謝謝

聯合警察

在LIKE子句中添加%

SELECT ID, IP_Address, UserName, Comments FROM TABLEA
FULL JOIN TABLEB
ON TABLEA.Comments LIKE '%' + TABLEB.Keywords + '%'
WHERE TABLEA.Comments IS NOT NULL AND TABLEB.Keywords IS NOT NULL

這將滿足您的需求。

SELECT ID, IP_Address, UserName
FROM TABLE1 T1
CROSS APPLY (SELECT Keywords FROM Table2) T2
WHERE CHARINDEX(T2.Keywords,T1.Comments) >0

可以將CROSS APPLY替換為完全聯接,但是如果第二個表中有更多列,則交叉應用的效果會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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