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

Dapatkan semua entri dari Tabel B yang memiliki hubungan dengan beberapa entri (daftar yang diberikan) dari Tabel A

Jika Anda ingin memilih berdasarkan daftar As (bukan ALL As), lakukan seperti ini:

SELECT b_id
FROM ab
WHERE a_id IN (1,2)
GROUP BY b_id
HAVING COUNT(a_id) = 2

Ganti (1,2) dengan daftar Anda dan 2 dalam klausa memiliki dengan jumlah item daftar.

Jika Anda mendapatkan daftar As dari subquery, Anda dapat melakukannya seperti itu (meskipun tidak di MySQL...):

WITH subquery (
 --subquery code here
)

SELECT b_id
FROM ab
WHERE a_id IN subquery
GROUP BY b_id
HAVING COUNT(a_id) = (SELECT COUNT(*) FROM subquery)

Di MySQL Anda harus memasukkan kode subquery Anda dua kali dan melepaskan klausa WITH.

Anda juga dapat menggunakan tabel sementara, yang kemudian akan mengarah pada pemilihan ALL As dari tabel sementara tersebut dan dengan demikian jawaban Gordon Linoff...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mencocokkan catatan dari dua tabel

  2. Cara yang benar untuk menjaga koneksi yang dikumpulkan tetap hidup (atau waktu habis dan dapatkan yang baru) selama tidak aktif lebih lama untuk aplikasi MySQL, Grails 2

  3. Daftar Hitam IP di PHP+MySQL

  4. MySQL MATCH tidak berfungsi dengan dua karakter?

  5. UTF-8 MySQL dan Charset