Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 29 su 29
  1. #21
    vedi questa (sistemata al buio )
    codice:
    SELECT    numero_postale 
    FROM
    (
       SELECT MIN(numero) as numero_postale from posta p where p.persona='3'
       UNION
       SELECT MIN(numero) as numero_postale from postaP p1 where p1.persona ='3' 
    ) T
    ORDER BY 
       numero_postale
    LIMIT 
       1

  2. #22
    Utente di HTML.it
    Registrato dal
    Feb 2021
    Messaggi
    38
    Si ok funziona, ma allo stesso modo di quella precedente, ossia dell'indirizzo non ho traccia

  3. #23
    se non lo metti nelle select, sarà difficile ottenerlo

  4. #24
    Utente di HTML.it
    Registrato dal
    Feb 2021
    Messaggi
    38
    Quote Originariamente inviata da optime Visualizza il messaggio
    se non lo metti nelle select, sarà difficile ottenerlo
    codice:
    SELECT numero_postale
    FROM
    (
       SELECT MIN(numero_postale) as numero_postale,indirizzo as indirizzo from posta p where p.persona='3'
       UNION
       SELECT MIN(numero_postale) as numero_postale,indirizzo as indirizzo from postaP p1  where p1.persona='3'
    ) T
    ORDER BY 
        numero_postale
    LIMIT 
       1
    errore: column "indirizzo" must appear in the GROUP BY clause or be used in an aggregate function
    Posizione: 70

  5. #25
    1. togli MIN e lascia il campo semlice
    2. l'indirizzo va in tutte le select

  6. #26
    Utente di HTML.it
    Registrato dal
    Feb 2021
    Messaggi
    38
    Quote Originariamente inviata da optime Visualizza il messaggio
    1. togli MIN e lascia il campo semlice
    2. l'indirizzo va in tutte le select
    codice:
    SELECT numero_postale,indirizzo
    FROM
    (
       SELECT numero_postale as numero_postale ,indirizzo as indirizzo from posta p where p.persona='3'
       UNION
       select numero_postale as numero_postale ,indirizzo as indirizzo from postaP p1  where p1.persona ='3'
    ) T
    ORDER BY 
        numero_postale
    LIMIT 
       1
    Cosi funziona, quindi quello che sta facendo questa query è:

    seleziono numero_postale ed indirizzo dalla prima tabella dove persona=3 ed unisce con la stessa cosa per l'altra tabella.
    Dopodichè seleziona il primo record trovato in ordine di numero_postale,è giusto il ragionamento?
    L'order by ed il LIMIT sostituiscono il min di fatto, giusto? ordina per numero_postale e seleziona solo il primo record trovato per numero_postale

  7. #27
    MIN() è più efficace, perché estrae direttamente il numero più basso; nel tuo caso però, dovendo estrarre altri campi, ORDER BY+LIMIT va bene lo stesso

    un po' di ottimizzazioni
    codice:
    SELECT
       numero_postale, indirizzo
    FROM
    (
       SELECT numero_postale, indirizzo FROM posta  WHERE persona='3' ORDER BY numero_postale LIMIT 1
       UNION
       SELECT numero_postale, indirizzo FROM postaP WHERE persona='3' ORDER BY numero_postale LIMIT 1
    ) T
    ORDER BY 
        numero_postale
    LIMIT 
       1

  8. #28
    Utente di HTML.it
    Registrato dal
    Feb 2021
    Messaggi
    38
    Quote Originariamente inviata da optime Visualizza il messaggio
    MIN() è più efficace, perché estrae direttamente il numero più basso; nel tuo caso però, dovendo estrarre altri campi, ORDER BY+LIMIT va bene lo stesso

    un po' di ottimizzazioni
    codice:
    SELECT
       numero_postale, indirizzo
    FROM
    (
       SELECT numero_postale, indirizzo FROM posta  WHERE persona='3' ORDER BY numero_postale LIMIT 1
       UNION
       SELECT numero_postale, indirizzo FROM postaP WHERE persona='3' ORDER BY numero_postale LIMIT 1
    ) T
    ORDER BY 
        numero_postale
    LIMIT 
       1
    Va bene,grazie comunque

  9. #29

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.