SQL在onces上选择多个表

时间:2017-08-30 08:54:38

标签: sql sql-server-2008

我在想是否有一个可以一次选择多个表的查询?不使用JOINS。我尝试研究它,但我得到的只是

SELECT * FROM Table WHERE ID IN (parameter1,parameter2);

我尝试过这种查询

select * from Table Table1,Table2

但结果仅来自Table1。

所有的表都不是彼此的关系所以它意味着它们与每个表都是不同的表。我在这里要做的是,如果有数据,我会检查表格。我使用的是使用

查询所有one-by-one
select * from Table

一次又一次。希望这能解释它。

2 个答案:

答案 0 :(得分:1)

对于组合表作为输出:

  

UNION

要允许重复值,请使用:

  

UNION ALL

SELECT * FROM table1 

UNION 

SELECT * FROM table2

对于分隔的表作为输出:

  

的数据集

DataSet dataSet = new DataSet();
DataTable table1 = new DataTable("table1");
DataTable table2 = new DataTable("table2");
dataSet.Tables.Add(table1);
dataSet.Tables.Add(table2);
using(SqlCommand cmd = new SqlCommand("SELECT * FROM table1;SELECT * from table2", con))
{
    using(SqlDataReader dr = cmd.ExecuteReader())
    {
        dataSet.Load(dr, LoadOption.OverwriteChanges, table1, table2);
    }
}

现在您可以像这样使用DataSet的表(msdn documentation):

private void PrintRows(DataSet dataSet)
{
    // For each table in the DataSet, print the row values.
    foreach(DataTable table in dataSet.Tables)
    {
        foreach(DataRow row in table.Rows)
        {
            foreach (DataColumn column in table.Columns)
            {
                Console.WriteLine(row[column]);
            }
        }
    }
}

答案 1 :(得分:0)

查看SQL命令UNION。然后你可以做类似的事情

SELECT * FROM table1
UNION
SELECT * FROM table2;