我有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
我做错了什么?
答案 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