仅当表为空时,MySQL空行才会显示

时间:2018-06-13 05:37:20

标签: mysql

我有2个MySQL表,一个名为_campi(意大利语为fields),另一个名为documenti(意大利语为documents)。

我需要显示_campi中的所有行以及documenti中匹配的内容,这必须在字段中显示为结果。

我无法理解的奇怪行为是,如果documenti表为空,我得到预期结果(10行有很多空值,预期结果),如果文档非空,我只得到2行结果。

这是查询:

SELECT *, campi_tipologie.valore_campo as tipo_doc FROM _campi as campi_tipologie
        LEFT JOIN documenti
        ON documenti.doc_type = campi_tipologie.id_campo
        WHERE campi_tipologie.categoria = "documenti-immobili"
        AND (campi_tipologie.codec = 2 OR campi_tipologie.codec = 0)
        AND (documenti.id_immobile IS NULL OR documenti.id_immobile = 422)
        ORDER BY id_campo

我做错了什么?

1 个答案:

答案 0 :(得分:2)

SELECT campi 
     , I
     , actually
     , want
     , c.valore_campo tipo_doc
  FROM _campi c
  LEFT 
  JOIN documenti d
    ON d.doc_type = c.id_campo
   AND d.id_immobile = 422
 WHERE c.categoria = "documenti-immobili"
   AND c.codec IN(2,0)
   AND d.id_immobile IS NULL  -- or omit this
 ORDER 
    BY c.id_campo