[英]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.