在多个sql server表中搜索查询

时间:2017-01-04 09:18:36

标签: sql sql-server

我有很多包含相同列的表我想搜索一个值并返回所有行例如

Tab1

col1 col2 col3

val1   val2  val3

val7   val8  val9

TAB2

col1 col2 col3

val4   val2  val5

如果我在我的java代码中搜索val2两行

,我想要返回的sql语法
Tab1

col1   col2  col3

val1   val2  val3

Tab2

col1   col2  col3

val4   val2  val5

谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试在两个查询之间执行UNION,每个查询都会选择所需的记录:

SELECT col1, col2, col3, 'Tab1' AS table_name
FROM Tab1
WHERE col2 = 'val2'
UNION ALL
SELECT col1, col2, col3, 'Tab2'
FROM Tab2
WHERE col2 = 'val2'

如果您想在任何列中搜索val2,那么您可以使用此功能:

SELECT col1, col2, col3, 'Tab1' AS table_name
FROM Tab1
WHERE col1 = 'val2' OR col2 = 'val2' OR col3 = 'val2'
UNION ALL
SELECT col1, col2, col3, 'Tab2'
FROM Tab2
WHERE col1 = 'val2' OR col2 = 'val2' OR col3 = 'val2'

答案 1 :(得分:0)

你也可以尝试使用sp_MSforeachtable和临时表。

<div class="naviMenu">
				<ul>
					<li><div id="homePage">Home</div></li>
					<li><a href="about.html">About</a></li>
					<li>Text</li>
					<li><a href="photo.html">Photo</li>
					<li><a href="special.html">Special Project</li>
					<li><a href="contact.html">Contact</li>
				</ul>