0

我有一个包含特定对象名称的表。假设它的列如下:id、other_id、name。

另外我还有另一个表,它使用“other_id”连接到前一个表,所以它的列是:other_id,name。

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

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

它工作正常。

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

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

有任何想法吗?

4

2 回答 2

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%'。

于 2013-11-01T22:56:44.097 回答
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。

于 2013-11-01T22:56:47.560 回答