Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Join 如何添加';在';向工会提交的条款?_Join_Sql Server 2012_Union - Fatal编程技术网

Join 如何添加';在';向工会提交的条款?

Join 如何添加';在';向工会提交的条款?,join,sql-server-2012,union,Join,Sql Server 2012,Union,我目前正在成功地合并两个表并连接第三个表 select col1,col2 from table1 union select col1,col2 from table2 join(select distinct(id), date from table3) on table3.id = table2.id 如果table1.col3位于table2.id中,如何仅合并table1和table2 换句话说,如果table1.col3中有一个值,我想从table2中获取所有数据,其中tab

我目前正在成功地合并两个表并连接第三个表

select col1,col2
from table1

union 

select col1,col2
from table2

join(select distinct(id), date from table3) on table3.id = table2.id
如果table1.col3位于table2.id中,如何仅合并table1和table2

换句话说,如果table1.col3中有一个值,我想从table2中获取所有数据,其中table2.id上有一个匹配项,并合并这些表

编辑:

  • 我要表2中的所有记录
  • 我想从table1中获取记录,其中table2.col1和table1.id之间存在匹配
  • 我想从表1中获取记录,其中表3.id和表1.id之间存在匹配,其中日期>='2018-12-01'

  • 注:表1和表2完全相同,这就是我为什么选择union

    您请求的
    联合实际上是一个相当简单的查询,因为它可以根据您的需求从3个单独的简单查询中构建

    SELECT col1, col2 FROM table2
     UNION ALL
    SELECT col1, col2 FROM table1 WHERE id IN (SELECT col1 FROM table2)
     UNION ALL
    SELECT col1, col2 FROM table1 WHERE id IN (SELECT id FROM table3 WHERE date >= '2018-12-01')
    
    请注意,
    UNION ALL
    允许重复(每个查询可能只显示一行),而更改为
    UNION
    将删除所有重复项


    您能否给出一个可复制的表格内容/结果示例,说明您想要的内容?“这有点难理解。”约阿希米萨克森肯定会给我一个建议min@JoachimIsaksson编辑
    SELECT col1, col2 FROM table2
     UNION ALL
    SELECT col1, col2 FROM table1 WHERE id IN (SELECT col1 FROM table2)
     UNION ALL
    SELECT col1, col2 FROM table1 WHERE id IN (SELECT id FROM table3 WHERE date >= '2018-12-01')