代码之家  ›  专栏  ›  技术社区  ›  Andrew

从多列的子查询中选择记录

  •  2
  • Andrew  · 技术社区  · 14 年前

    我想这样做:

    假设我有两张表,myTable1和myTable2。假设这两个表都有mycolumn1和mycolumn2列。

    update
       myTable1
    set
       myTable1.myFlagColumn = 1
    where
        myTable1.myColumn1, myTable1.myColumn2
           in
              (select myTable2.myColumn1, myTable2.myColumn2 from myTable2)
    

    本质上,如果myTable1和myTable2中的两列匹配,我希望更改myTable1中的值。

    这有可能吗?

    1 回复  |  直到 13 年前
        1
  •  5
  •   AFoglia    13 年前

    是,但您将使用exists子句:

     update
        myTable1
     set
        myTable1.myFlagColumn = 1
     where
         EXISTS
         (select * FROM myTable2 WHERE myTable2.myColumn1 = myTable1.myColumn1 
         AND myTable2.myColumn2 = myTable1.myColumn2)