SQL Query在免费搜索中从另一个表中查找名称

时间:2013-11-01 22:48:31

标签: mysql sql sql-server

我有一个包含特定对象名称的表。 我们可以说它的列如下:id,other_id,name。

此外,我还有另一个表连接到前一个表,其中包含“other_id”,因此其列为:other_id,name。

要在常规搜索中查找我使用过的特定对象:

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

它工作正常。

但是,我还要搜索第二张表的名称。

所以基本上我有两个表,以及一个连接它们的id,我希望能够得到第一个表行,其名称如“search”或第二个表行连接到该特定表在第一个表上的行,名称也就像“搜索”。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

您可以在链接它们的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%'。

答案 1 :(得分:0)

如果您想要两个表的结果,您可以这样做:

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,因此第二个表的结果将为null作为id。