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

SQL - mencocokkan catatan dari satu tabel ke tabel lain berdasarkan beberapa kolom

Desain DB buruk, tetapi, dengan asumsi Anda harus menggunakannya:

SELECT h.name
    FROM tblhobby h
        INNER JOIN tblavailable_hobby ah1
            ON h.hobby1 = ah1.available_hobby
        INNER JOIN tblavailable_hobby ah2
            ON h.hobby2 = ah2.available_hobby
        INNER JOIN tblavailable_hobby ah3
            ON h.hobby3 = ah3.available_hobby

EDIT :Menjawab twist yang diusulkan di komentar di bawah.

SELECT h.name
    FROM tblhobby h
        LEFT JOIN tblavailable_hobby ah1
            ON h.hobby1 = ah1.available_hobby
        LEFT JOIN tblavailable_hobby ah2
            ON h.hobby2 = ah2.available_hobby
        LEFT JOIN tblavailable_hobby ah3
            ON h.hobby3 = ah3.available_hobby
    WHERE (h.hobby1 IS NULL OR ah1.available_hobby IS NOT NULL)
        AND (h.hobby2 IS NULL OR ah2.available_hobby IS NOT NULL)
        AND (h.hobby3 IS NULL OR ah3.available_hobby IS NOT 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. Menangani data spasial di CakePHP

  2. Masukkan dan perbarui data file CSV ke tabel MySQL menggunakan PHP

  3. Bagaimana cara mengganti operator OR dengan operator UNION?

  4. Apa yang terjadi jika database MySQL tidak ditutup?

  5. Mengoptimalkan kueri untuk elemen berikutnya dan sebelumnya