我有一个包含特定对象名称的表。 我们可以说它的列如下:id,other_id,name。
此外,我还有另一个表连接到前一个表,其中包含“other_id”,因此其列为:other_id,name。
要在常规搜索中查找我使用过的特定对象:
WHERE `name` LIKE '%$search%'"
它工作正常。
但是,我还要搜索第二张表的名称。
所以基本上我有两个表,以及一个连接它们的id,我希望能够得到第一个表行,其名称如“search”或第二个表行连接到该特定表在第一个表上的行,名称也就像“搜索”。
有什么想法吗?
答案 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。