Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    SELECT * FROM da più tabelle

    Salve, stando a varie fonti tra cui W3Schools, alla clausola FROM è possibile indicare una tabella ove effettuare il SELECT.
    Tuttavia sul testo "Fondamenti di basi di dati" sono riportati vari esempi di FROM con ricerca in più tabelle separate da virgola. Esempi che posso testare solo tramite pagine PHP e MySQL, e che puntualmente non funzionano.

    Il libro è farlocco o cosa mi sfugge?

  2. #2

  3. #3
    Parto da questo comando funzionante
    Codice PHP:
    $sql "SELECT * FROM schede WHERE Titolo LIKE '%$testo%' ORDER BY Anno ASC"
    e mi farebbe comodo che cercasse anche in altre due tabelle
    Codice PHP:
    $sql "SELECT * FROM schede, numeriuno, speciali WHERE Titolo LIKE '%$testo%' ORDER BY Anno ASC"
    Tuttavia eseguendo
    Codice PHP:
    $cerca mysqli_query($link$sql) or die("Errore query database"); 
    va in die.

    Su W3School, modificando un esempio nel tutorial, prende tranquillamente nel FROM due tabelle tra quelle presenti, separate da virgola, come afferma il libro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    18
    Non è che per caso il campo Titolo è ambiguo ed è presente nelle altre tabelle ?
    Prova a rifare la query inserendo la tabella di appartenenza tipo NOME_TABELLA.Titolo.
    Stesso discorso per il campo ANNO.
    Se hai possibilità, prova ad eseguire prima la query direttamente sul db, almeno hai un messaggio di errore più verboso.
    Ultima modifica di treble; 12-11-2020 a 13:27

  5. #5
    Le tre tabelle hanno struttura identica, eccetto un campo che in un caso è INT, negli altri VARCHAR (suddivisione necessaria per la visualizzazione dei risultati con un ordine alfanumerico sensato).

    Dal db mi dà errore #1052 -, senza altri dettagli, che da veloce ricerca sembra correlato con una ambiguità della colonna ID che è auto incrementante. Ci sta, ovviamente ogni tabella parte da 1 come numerazione, ma mi pare strano come fenomeno.
    Anche rifacendo la query con le tabelle di appartenenza dei campi non risolvo.
    Sugli anni non saprei come muovermi dato che riguardano un ordinamento e dovrebbero essere mostrati appunto per anno, "mescolando" i risultati trovati nelle tre tabelle.
    Ultima modifica di Gas75; 12-11-2020 a 13:49

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    18
    Provi a modificare la query così ?

    SELECT * FROM schede, numeriuno, speciali WHERE schede.Titolo LIKE '%$testo%' ORDER BY schede.Anno ASC

    Solo per verificare se il mio dubbio è corretto, poi ovviamente andrebbe adeguata a tutte le tabelle.

  7. #7
    la query giusta sarebbe

    SELECT <colonne> FROM tabella1
    UNION
    SELECT <stesso_elenco_colonne> from Tabella2
    UNION
    SELECT <sempre_stesso_elenco_colonne> from Tabella3

  8. #8
    Quote Originariamente inviata da treble Visualizza il messaggio
    Provi a modificare la query così ?

    SELECT * FROM schede, numeriuno, speciali WHERE schede.Titolo LIKE '%$testo%' ORDER BY schede.Anno ASC

    Solo per verificare se il mio dubbio è corretto, poi ovviamente andrebbe adeguata a tutte le tabelle.
    Pare funzionare, nel senso che non trova nulla poiché il LIKE è una variabile, ma non dà errori.

  9. #9
    Quote Originariamente inviata da optime Visualizza il messaggio
    la query giusta sarebbe

    SELECT <colonne> FROM tabella1
    UNION
    SELECT <stesso_elenco_colonne> from Tabella2
    UNION
    SELECT <sempre_stesso_elenco_colonne> from Tabella3
    Resta il mistero sul perché W3School accetta più tabelle nel FROM dello stesso comando (anche se nel tutorial parla al singolare...) e il libro che ho sotto mano sciorini esempi analoghi senza alcuna UNION.
    E in ogni caso non funziona sebbene sia un comando presente in letteratura.
    Ultima modifica di Gas75; 12-11-2020 a 14:14

  10. #10
    perché ci sono mille modi di fare le cose

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.