sql >> Databáze >  >> RDS >> Mysql

Klauzule SQL IN – získat zpět prvky IN, které se neshodovaly

Zdá se, že vaše Rooms tabulka obsahuje pouze údaje za aktivní obsazenost. To dává smysl v mnoha ohledech, protože nechcete ukládat informace o lidech, kteří skutečně neobývají místnost. Vygenerování požadované sady výsledků však představuje problém, protože chybějící místnosti nejsou v Rooms .

Jednou z možností je přístup „kalendářní tabulky“. Můžete se LEFT JOIN tabulku obsahující všechny místnosti k vašim aktuálním Rooms tabulku a poté označte chybějící obyvatele jako 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

Všimněte si, že jsem použil linkový poddotaz k vytvoření tabulky pro všechny místnosti. V praxi můžete vytvořit skutečnou tabulku ve Workbench obsahující tyto informace.

Ukázka zde:

SQLFiddle



  1. převést blob na clob

  2. Jak exportovat všechna data z tabulky do vložitelného formátu SQL?

  3. soubor se nenahrává v ajax php mysql

  4. body dotazu mysql v polygonu - žádné výsledky