添加到SQL查询的连接

时间:2016-02-18 21:14:51

标签: mysql sql

我需要在预先存在的SQL查询中添加join'级别'...不幸的是,我一直收到此查询的错误。我可能会摔倒在某处,但我无法理解如何修复它。 原始查询如下:

SELECT 
    noleggio.*, 
    nome AS convenzionato
FROM
    anag_convenzionati
RIGHT JOIN (SELECT 
    noleggio.*, targa, dc_standard AS dcstandard
FROM
    veicoli_contratti
RIGHT JOIN (SELECT 
    noleggio.*,
    nome AS assicurazione_pagante
FROM
    anag_assicurazioni
RIGHT JOIN (SELECT
        fatt_sconto_noleggio,
        fatt_prezzo_noleggio,
        id AS idnoleggio,
        numero,
        serie,
        id_convenzionato,
        stato_noleggio,
        modalita_noleggio,
        conducente,
        locatario,
        locazione_in_proprio,
        id_assicurazione_pagante,
        id_veicolo,
        giorni,
        fatt_giorni_noleggio,
        fatt_prezzo_totale_noleggio,
        data_pagamento_cliente_a_convenzionato,
        ore_manodopera,
        IF(locazione_in_proprio = 1, conducente, locatario) AS cedente
FROM
    noleggio_veicoli
WHERE
    ((data_cancellazione IS NULL) OR (data_cancellazione = ''))
) AS noleggio ON noleggio.id_assicurazione_pagante = anag_assicurazioni.id
) AS noleggio ON noleggio.id_veicolo = veicoli_contratti.id
) AS noleggio ON noleggio.id_convenzionato = anag_convenzionati.id;

我需要以这种方式将结果表与moduli_ocr表连接起来:

SELECT 
   noleggio.*
FROM
   (//query//) AS noleggio
        LEFT JOIN
      moduli_ocr ON moduli_ocr.id_noleggio = noleggio.id;

//查询//是上面的代码。

我得到的错误(在MySQL Workbench中运行查询是:

Error Code: 1054. Unknown column 'noleggio.id' in 'on clause'

BTW我不确定是否必须使用RIGHTLEFT加入,但一旦查询正确“运行”,我就会检查此内容。

最好的问候。

1 个答案:

答案 0 :(得分:5)

似乎您将idnoleggio别名分配给字段“id”。尝试加入

moduli_ocr.id_noleggio = noleggio.idnoleggio;