SQL Union查询 - 多个表

api*_*eSO 1 sql sql-server

我有2个表(项目和文档),都有一个ID和名称字段.

我正在寻找满足以下要求的查询: - 它将从"名称"字段中的任何一个表中返回具有指定字词的行 - 它将返回3个字段:ID,Name和TableName - 其中tablename将是要么是表的名称,要么是某些标识符

我试过了:

SELECT id, name 
FROM projects UNION SELECT id, name FROM documents
WHERE name like '%querystriong%'
Run Code Online (Sandbox Code Playgroud)

但是此查询不会添加第3个(TableName)字段,而是返回Projects表中的行,这些行在名称字段中具有与querystring关联的文档.

我怀疑我正在解决这个问题.有任何想法吗?

Cod*_*ird 5

你的意思是这样的:

SELECT id, name, 'projects' AS table_name 
FROM projects WHERE name like '%querystriong%' UNION SELECT id, name, 'documents' AS table_name
FROM documents WHERE name like '%querystriong%'
Run Code Online (Sandbox Code Playgroud)