簡體   English   中英

SQL查詢以免費搜索另一個表中的名稱

[英]SQL Query to find name from another table in free search

我有一個包含特定對象名稱的表。 假設其列如下:id,other_id,名稱。

另外,我還有另一個表,該表使用“ other_id”連接到先前的表,因此其列為:other_id,名稱。

為了在常規搜索中找到特定的對象,我使用了:

WHERE `name` LIKE '%$search%'"

而且工作正常。

但是,我也要搜索第二張表的名稱。

所以基本上我有兩個表,以及一個在兩個表之間連接的ID,並且我希望能夠獲得名稱如“ search”的第一表行或連接到第一表上該特定行的第二表行,也叫“搜索”。

有任何想法嗎?

您可以在鏈接表的ID上加入表。 然后,您可以根據指定的任何條件選擇所需的任何列。

CREATE TABLE #TEST
(COL1 INT,
COL2 NVARCHAR(5))

CREATE TABLE #TEST2
(COL1 INT,
COL2 NVARCHAR(5))

INSERT INTO #TEST
VALUES ('1', 'BILL'), ('2', 'NANCY')

INSERT INTO #TEST2
VALUES ('1', 'RED'), ('2', 'BLUE')


SELECT A.COL2
      ,B.COL2
FROM #TEST A
JOIN #TEST2 B
ON A.COL1 = B.COL1
WHERE A.COL2 LIKE '%BILL%'

本示例將從兩個表中選擇第2列,其中table1.column1類似於'%Bill%'。

如果要從兩個表中獲得結果,則可以執行以下操作:

SELECT id,other_id,name FROM TABLE1
WHERE `name` LIKE '%$search%'
UNION
SELECT null,other_id,name FROM TABLE2
WHERE `name` LIKE '%$search%'

由於第二個表中只有other_id,name,因此聯合的第二個表的結果的id將為null。

暫無
暫無

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

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