Quote Originariamente inviata da badaze Visualizza il messaggio
Scusa, ma questo non è una risposta. Se una cosa è fatta male allora bisogna rifarla ! Vedi, se le cose fossero state fatte in maniera corretta sin dall'inizio non porresti la domanda e avresti una query molto più snella.

Comunque (sembra funzionare dai dati che hai postato)

codice:
Select appuntamenti_clienti.*,
clienti.ragione_sociale,
luogo_agenda.citta_agenda,
agenda_cagliari.data as data_cagliari,
agenda_olbia.data as data_olbia,
agenda_sassari.data as data_sassari,
orari_apertura.orario
FROM appuntamenti_clienti
JOIN clienti
ON appuntamenti_clienti.id_cliente=clienti.id
JOIN luogo_agenda
ON appuntamenti_clienti.id_luogo_agenda=luogo_agenda.id
LEFT JOIN agenda_cagliari
              ON (appuntamenti_clienti.id_agenda= agenda_cagliari.id AND 
                  appuntamenti_clienti.id_luogo_agenda= 1 AND
                  agenda_cagliari.data>=NOW())
LEFT JOIN agenda_olbia
              ON (appuntamenti_clienti.id_agenda= agenda_olbia.id AND
                  appuntamenti_clienti.id_luogo_agenda= 2 AND
                 agenda_olbia.data>=NOW())
LEFT JOIN agenda_sassari
              ON (appuntamenti_clienti.id_agenda= agenda_sassari.id AND
                  appuntamenti_clienti.id_luogo_agenda= 3 AND
                 agenda_sassari.data>=NOW())
LEFT JOIN orari_apertura
ON
(agenda_olbia.orari_apertura_id=orari_apertura.id AND 
                    appuntamenti_clienti.id_luogo_agenda= 2)
                    OR
(agenda_cagliari.orari_apertura_id=orari_apertura.id AND 
                  appuntamenti_clienti.id_luogo_agenda= 1)
                   OR
(agenda_sassari.orari_apertura_id=orari_apertura.id AND 
                  appuntamenti_clienti.id_luogo_agenda= 3)                   
WHERE agenda_cagliari.data IS NOT NULL
 OR agenda_olbia.data IS NOT NULL
 OR agenda_sassari.data IS NOT NULL
ORDER BY  
    CASE WHEN agenda_cagliari.data IS NOT NULL 
 THEN agenda_cagliari.data
 ELSE CASE WHEN agenda_olbia.data IS NOT NULL 
   THEN agenda_olbia.data 
   ELSE agenda_sassari.data 
   END
 END 
LIMIT 3
Capture20171102-001.JPG
Funziona grazie