显示来自 table 的数据,即使没有数据

Show data from table even if there is no data

我有 3 个 table:

Compania中的数据table:

Periodo中的数据table:

VAC_PERIODOCIA中的数据table:

我想显示Periodo搜索的所有公司(COMPANIA)和(vac_aplica列中的值),无论它们是否已注册。

我试过这个:

SELECT  
    COMPANIA.CIA_CLAVE, COMPANIA.CIA_NOM, 
    CASE 
        WHEN VAC_PERIODOCIA.VAC_APLICA IS NULL 
            THEN 'N' 
            ELSE 'Y'  
    END VAC_APLICA
FROM
    COMPANIA 
LEFT JOIN
    VAC_PERIODOCIA ON COMPANIA.CIA_CLAVE = VAC_PERIODOCIA.CIA_CLAVE 
WHERE 
    VAC_PERIODOCIA.PERIODO = '2018 - 2019'

结果:

我要的是这个:

首先,问题一团糟:问题中的表格和列与您提供给我们的示例不同。请解决这个问题。

我不会说西班牙语,所以我只能假设 VAC_PERIODICA 是 Periodo。在这种情况下,您需要将 where 条件下的内容移至 join 子句。像这样

SELECT  COMPANIA.CIA_CLAVE,COMPANIA.CIA_NOM, 
        CASE 
          WHEN Periodo.valor IS NULL THEN 'N' 
          ELSE 'Y' 
        END VAC_APLICA
FROM Compania 
LEFT JOIN Periodo 
  ON COMPANIA.CIA_CLAVE = Periodo.valor 
 AND Periodo.PERIODO = '2018 - 2019'
order by 1

dbfiddle