Visualizzazione dei risultati da 1 a 5 su 5

Discussione: select nidificate

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53

    select nidificate

    Ciao

    Sto cercando di estrarre tutti i valori di una tabella e un solo valore di una seconda tabella entrambe facenti parte di un db in mysql.

    Ho pensato di usare una SELECT nidificata ma mi restituisce questo errore:

    Errore nella query SELECT * FROM clienti WHERE societa =(SELECT nfattura FROM fatture): Subquery returns more than 1 row.

    La sintassi che uso per la query è la seguente:

    $query = "SELECT * FROM clienti WHERE societa =(SELECT nfattura FROM fatture)";

    I nomi delle tabelle sono:

    clienti & fatture, per clienti devo estrarre tutti i dati mentre per fatture solo nfatture.

    Mi potete aiutare?

    Grazie

  2. #2
    Sarebbe stato meglio se avesi riportato anche i campi della tabela, in modo da capire quale usi come collegamento tra le due, ad ogni modo

    Se non ho capito male la tabella clienti ha il campo società che ti fa da collegamento alla tabella fatture.

    Prova:

    select *.clienti, nfattura.fatture from clienti, fatture where societa.clienti = ???;

    Al posto dei ??? devi mettere in campo che nella tabella fatture deve essere uguale al capo società nella tabella clienti.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53

    campi di collegamento

    i campi nella tabella clienti sono: nome,cognome,societa,via,citta,cap,piva
    i campi nella tabella fatture sono: idfattura,nfattura,societa


    io devo poter visualizzare su di un'unica riga :

    nome cognome societa via citta cap piva nfattura.

    con il Join che hai riportato mi da un errore :

    Errore nella query SELECT *.clienti, nfattura.fatture from clienti, fatture where societa.clienti = societa: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.clienti, nfattura.fatture from clienti, fatture where societa.clienti = societa' at line 1

  4. #4
    Non ti servono select nidificate, ma un join:

    codice:
    SELECT * FROM clienti LEFT JOIN fatture
    ON clienti.societa = fatture.societa

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    53

    risolto

    Grande ho risolto mi avevano consigliato le select nidificate, ero partito con join ma non essendo molto pratico non scrivevo in modo corretto la sintassi ora ho risolto


    grazie

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 © 2025 vBulletin Solutions, Inc. All rights reserved.