如何在MSSQL中使用单个查询选择2个表数据

时间:2013-10-08 12:16:04

标签: sql sql-server select

我正致力于图书馆管理和制作报告,我希望从2个表格中获取数据,这些表格没有相互关联,即issueDataissueRecord

记录包含以前的图书发布数据,而数据表仅包含当前图书发布的报告。

简单地说,我想合并这两个问题,即

  1. Select * From issueRecord where issueDate = '19/07/2013'
  2. Select * From issueData where issueDate = '19/07/2013'
  3. 请帮助。

2 个答案:

答案 0 :(得分:1)

您的问题不是很明确,但似乎您正在寻找UNIONUNION ALL查询。

假设您想要的是包含来自每个表的记录的单个结果集,但您没有尝试将这两个表组合到一行上,那么语法将类似于:

Select Field_1, Field_2, Field_3 From issueRecord where issueDate = '19/07/2013'
UNION
Select Field_A, Field_B, Field_C From issueData where issueDate = '19/07/2013'

从两个表中选择的列的类型和顺序必须匹配。 UNION将相同的记录折叠为一个输出行,就像一个distinct子句一样,而UNION ALL将包含每个查询的每条记录。

答案 1 :(得分:1)

如果您的问题更清楚,我们可以提供更多帮助。

根据我的理解,你正在努力建立工会全部或工会。也有机会进行交叉加入,但这可能不是您想要的结果。

Union和union都有答案,但我建议您使用如下所示

Select 'Record', Field_1, Field_2, Field_3 From issueRecord where issueDate = '19/07/2013'
UNION
Select 'Data', Field_A, Field_B, Field_C From issueData where issueDate = '19/07/2013'

通过此添加,您可以找到哪个数据来自哪个表。

除此之外,您还可以使用交叉连接

select * from issueRecord  CROSS JOIN issueData

但请检查数据是什么。