Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Kueri di mana dua kolom berada dalam hasil kueri bersarang

Sebenarnya tidak, tidak ada cara yang lebih cerdas untuk menulis ini (tanpa mengunjungi Y dua kali) mengingat X yang cocok dengan myTable.X dan myTable.YY mungkin tidak berasal dari baris yang sama.

Sebagai alternatif, bentuk kueri EXISTS adalah

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

Jika Y berisi nilai X 1,2,3,4,5 , dan x.x = 2 dan x.xx = 4 , keduanya ada (pada record yang berbeda di Y) dan record dari myTable harus ditampilkan di output.

EDIT:Jawaban ini sebelumnya menyatakan bahwa You could rewrite this using _EXISTS_ clauses which will work faster than _IN_ . SEPERTI yang telah ditunjukkan Martin, ini tidak benar (tentu saja bukan untuk SQL Server 2005 dan di atasnya). Lihat tautan



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. isi kotak teks pada pilihan kotak kombo kedua diubah dalam kotak kombo bertingkat dalam bentuk windows menggunakan c #

  2. SQL Server 2008 FullTextSearch Karakter Tunggal dalam Nama Hilang dari Hasil

  3. Bagaimana Anda melakukan pencarian teks lengkap (FTS) dengan kerangka entitas Linq to ADO.NET?

  4. Kerangka Entitas tidak berfungsi dengan tabel temporal

  5. Nilai yang Dipisahkan Koma dengan SQL Query