sql >> データベース >  >> RDS >> Sqlserver

ネストされたクエリの結果に 2 つの列があるクエリ

    実際にはいいえ、myTable.X と myTable.YY が一致する X が同じ行のものではない可能性があることを考えると、これを (Y を 2 回訪問することなく) よりスマートに記述する方法はありません。

    別の方法として、クエリの EXISTS 形式は

    select *
    from myTable A
    where exists (select * from Y where A.X = Y.X)
      and exists (select * from Y where A.XX = Y.X)
    

    Y が 1,2,3,4,5 の X 値を含む場合 、および x.x = 2 および x.xx = 4 、それらは両方とも (Y の異なるレコードに) 存在し、myTable からのレコードが出力に表示されます。

    編集:以前のこの回答 You could rewrite this using _EXISTS_ clauses which will work faster than _IN_ . AS Martin が指摘したように、これは正しくありません (SQL Server 2005 以降には当てはまりません)。リンクを見る



    1. ckeditorhtmlコードをデータベースに挿入します

    2. APPARENTDEADLOCK割り当てられていない保留中のタスクの緊急スレッドを作成する

    3. Oracleは外部キーを取得します

    4. 最初の選択で2番目の選択の値を変更します