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

SQL IN Clause - dapatkan kembali elemen IN yang tidak cocok

Tampaknya Rooms . Anda tabel hanya berisi data untuk hunian aktif. Ini masuk akal dalam banyak hal, karena Anda tidak ingin menyimpan informasi tentang orang-orang yang tidak benar-benar menempati ruangan. Tetapi ini menimbulkan tantangan untuk menghasilkan kumpulan hasil yang Anda inginkan, karena ruang yang hilang tidak ada di Rooms .

Salah satu opsi di sini adalah pendekatan "tabel kalender". Anda dapat LEFT JOIN tabel yang berisi semua ruangan ke Rooms Anda saat ini tabel, lalu beri label penghuni yang hilang sebagai nobody .

SELECT t1.Room,
       COALESCE(t2.OccupantName, 'Nobody') AS OccupantName
FROM
(
    SELECT "Room 1" AS Room
    UNION ALL
    SELECT "Room 2"
    UNION ALL
    SELECT "Room 3"
    UNION ALL
    SELECT "Room 4"
) AS t1
LEFT JOIN Rooms AS t2
    ON t1.Room = t2.Rooms

Perhatikan bahwa saya menggunakan subquery baris untuk membuat tabel untuk semua ruangan. Dalam praktiknya, Anda dapat membuat tabel aktual di Workbench yang berisi informasi ini.

Demo di sini:

SQLFiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Peringatan:#1265 Data terpotong untuk kolom 'pdd' di baris 1

  2. Apa yang akan mencegah saya terhubung ke server MySQL di AWS RDS dari VM AWS EC2?

  3. Perbandingan MySQL dan LIKE dengan %

  4. Hapus baris duplikat di MySQL

  5. Cara Menginstal MySQL 8.0 di RHEL/CentOS 8/7 dan Fedora 35