Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Due Domande sui SELECT nei database MySQL

    Ciao

    come da titolo vorrei chiedervi due cose sui db mysql, nella fattispecie sui SELECT.

    Devo estrapolare dati da più tabelle dove alcune colonne hanno riferimenti a colonne di altre tabelle, ed io uso questo tipo di query che funziona (almeno per il momento..), però leggendo e curiosando in diversi articoli, ho trovato spesso una sintassi diversa da quella che uso io. Il punto é che il tipo di sintassi usata nelle guide, riesco a capirla fin tanto che la query é semplice come estrapolare dati da sole due tabelle.. Quando cominciano ad essere di più, mi perdo ed ho errori nella query..

    Intanto vi posto la mia query:

    codice:
    ("SELECT movimenti.ora, movimenti.km, movimenti.evento, movimenti.gasolio, movimenti.adblue, movimenti.note, semirimorchio.targa, luoghi.luogo FROM movimenti, semirimorchio, luoghi WHERE movimenti.id_sr=semirimorchio.id and movimenti.g_id=('$id') and movimenti.luogo_id=luogo.id order by movimenti.ora") or die mysql_error());
    Nelle varie guide invece, trovo sempre sintassi di JOIN e come detto sopra, riesco a capirle fin tanto che sono solo due tabelle, di più, comincio a perdermi..

    L'altra domanda, invece, é più semplice. Uso questa query per estrapolare dei dati, ma vorrei che non venissero visualizzati i record vuoti:

    codice:
    ("SELECT movimenti.g_id, semirimorchio.targa FROM movimenti, semirimorchio WHERE movimenti.g_id='$id' and movimenti.id_sr=semirimorchio.id order by movimenti.ora") or die (mysql_error());
    dovrei riuscire a non visualizzare i record vuoti della tabella semirimorchio..

  2. #2
    Ho il risolto il problema della mia seconda domanda sui select aggiungendo alla mia query questo codice:

    codice:
    and semirimorchio.targa not like ''
    in questo modo non carica i record vuoti

    quindi la mia query completa e funzionante diventa così:

    codice:
    ("SELECT movimenti.g_id, semirimorchio.targa FROM movimenti, semirimorchio WHERE movimenti.g_id='$id' and movimenti.id_sr=semirimorchio.id and semirimorchio.targa not like '' order by movimenti.ora") or die (mysql_error());

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    ciao,

    1) dovresti postare la struttura delle tabelle

    2) (un consiglio) se le tabelle le hai create tu, sarebbe meglio se usassi lo stesso standard nella scelta del nome del campo:
    es: la tua tabella movimenti ha 2 campi (FK) che fanno riferimento a tabelle esterne
    movimenti.id_sr che fa riferimento alla tabella semirimorchio
    movimenti.luogo_id che fa riferimento alla tabella luoghi
    io li chiamerei con lo stesso formato
    id_sr
    id_luogo (e non luogo_id)
    ...... ma ripeto e' solo un mio consiglio!

    per quanto riguarda la prima domanda certamente farei cosi:
    codice:
    SELECT 
    movimenti.ora, 
    movimenti.km, 
    movimenti.evento, 
    movimenti.gasolio, 
    movimenti.adblue, 
    movimenti.note, 
    semirimorchio.targa, 
    luoghi.luogo 
    FROM movimenti
    left join semirimorchio on semirimorchio.id=movimenti.id_sr
    left join luoghi on luoghi.id=movimenti.luogo_id
    where
    WHERE movimenti.g_id=('$id') 
    order by movimenti.ora
    in qusto caso vengono estratti tutti i record dalla tabella movimenti e ad ogni record della stessa tabella movimenti vengono associati (left join) i record delle tabelle semirimorchio e luoghi tramite le relazioni indicate.

    nel caso tuo vengono estratti tutti i record dalle tabelle movimenti, semirimorchio e luoghi.

    per la seconda domanda dovresti specificare meglio cosa intendi per 'record vuoti'.

    ciao

  4. #4
    grazie per la spiegazione

    per record vuoti, intendo recordo con valore null, cioé dove non c'e' niente, ma per quello ho risolto

    grazie ancora!, per le colonne hai ragione, meglio usare lo stesso standard nella scelta del nome

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.