Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Query Mysql Tingkat Lanjut untuk mendapatkan catatan master jika dua kondisi cocok pada baris catatan anak yang berbeda

Memang, seperti yang diisyaratkan AsConfused, Anda perlu dua bergabung ke TABLE2 menggunakan alias

-- both of these are tested :

-- find t1 where it has 2 and 7 in t2

    select t1.*
    from table1 t1
    join table2 ov2 on t1.id=ov2.masterid and ov2.optionValue=2
    join table2 ov7 on t1.id=ov7.masterid and ov7.optionValue=7

-- find t1 where it has 2 and 7 in t2, and no others in t2

select t1.*, ovx.id
    from table1 t1
      join table2 ov2 on t1.id=ov2.masterid and ov2.optionValue=2
      join table2 ov7 on t1.id=ov7.masterid and ov7.optionValue=7
      LEFT OUTER JOIN table2 ovx on t1.id=ovx.masterid and ovx.optionValue not in (2,7)
    WHERE ovx.id is null


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP - Data POST salah dikirim melalui formulir saat gema?

  2. Tidak dapat mengakses data SQL di luar loop sementara saya

  3. Cara terbaik untuk menyimpan tag untuk kecepatan di tabel yang sangat besar

  4. Mengirim Pemberitahuan Firesbase ke Banyak Pengguna

  5. Menambahkan Data ke Database MySQL dari Formulir HTML