我需要URA表中的所有记录,在dobavljac上联接以获取dobavljac的名称,在DOSTAVNICA表中基于dostavnica.ura_id WHERE EXIST ura_id Join on gradilista的所有记录均基于gradilista

查询:

$sql = "SELECT

        ura.id,
        ura.id_dobavljac,
        ura.broj_racuna,

        dobavljaci.id_dobavljac,
        dobavljaci.naziv as dnaziv,
        dobavljaci.oib,
        dobavljaci.adresa,

        dostavnica.ura_id,
        dostavnica.id_dostavnica,
        dostavnica.id_gradilista,

        gradilista.id,
        gradilista.naziv

    FROM ura

    INNER JOIN ura ON ura.id = dostavnica.ura_id

    LEFT JOIN ura ON ura.id_dobavljac = dobavljaci.id_dobavljac

    LEFT JOIN dostavnica ON dostavnica.id_gradilista = gradilista.id
    ";


表架构:



这就是我的期望:

最佳答案

试试这个:一个简短的表结构会有所帮助。但是根据您在查询中使用的列名,我已经发布了答案。

SELECT

        ura.id,
        ura.id_dobavljac,
        ura.broj_racuna,

        dobavljaci.id_dobavljac,
        dobavljaci.naziv as dnaziv,
        dobavljaci.oib,
        dobavljaci.adresa,

        dostavnica.ura_id,
        dostavnica.id_dostavnica,
        dostavnica.id_gradilista,

        gradilista.id,
        gradilista.naziv

    FROM ura
    INNER JOIN dobavljac ON ura.id_dobavljac = dobavljaci.id_dobavljac
    INNER JOIN dostavnica ON ura.id = dostavnica.ura_id
    WHERE EXISTS
    (SELECT 1 from gradilista WHERE dostavnica.id_gradilista = gradilista.id)

10-07 18:48