Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    ricapitoliamo:

    MySQL restituisce tutte le combinazione delle relazioni producendo così righe doppie della tabella primaria

    es:
    CLIENTI (tabella primaria)
    id - nome
    1 - gino
    2 - pino

    FATTURE
    id fattura - id cliente
    1 - 1
    2 - 1
    3 - 2

    OTTENGO
    id - nome - id fattura
    1 - gino - 1
    1 - gino - 2
    2 - pino - 3

    non ci sono soluzioni ma 2 trucchi:

    - GROUP BY = il problema che il manuale MySql specifica che qualora i campi non siano uguali (è il caso del campo inglobato dalla seconda tabella per relazione) verrà restituito uno dei 2 valori ...ma non si sa quale
    - DISTINCTROW = controlla anche i campi inglobati ...che sono diversi...quindi non raggruppa nulla

    possibile non ci sia soluzione?

    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  2. #12
    SELECT clienti.id, clienti.nome, fatture.id FROM fatture INNER JOIN clienti ON (clienti.id=fatture.idcliente) WHERE idcliente = 1;

    l'ho buttato così di getto senza testarlo, non so se funziona
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  3. #13
    è quello che facevo io (a parte il fatto che io uso LEFT JOIN e te INNER JOIN) ma dà esattamente quello che dico io: doppie righe

    potrei usare DISTINCT in riferimento all'ID CLIENTE ...ma sembra che "distinct" si riferisca a tutti i campi specificati ...e quindi diventa uguale a DISTINCTROW ...inoltre si pone lo stesso problema: tra 2 dati distinti (degli altri campi) quale sarà scelto?


    ...alla fine mi sa che è meglio agire su WHERE ...è più veloce e più sicuro del risultato
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  4. #14
    strano che ti dia doppie righe, io INNER JOIN l'ho usato nel sito della mia radio perché dovevo mostrare nella pagina di ogni speaker tutte le trasmissioni a lui legate, in pratica la stessa cosa tra cliente e fatture, io l'ho fatta con successo tra speaker e programmi da lui condotti, per un rapporto di 1 a N
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  5. #15
    sì ma forse te stai usando GROUP BY ?

    sto leggendo il manuale e sembra che "INNER" serva solo per escludere i record che non matchano ne a sx ne a dx ...tuttavia il manuale dice che è normale avere la produzione di tutte le combinazioni

    cioè a te si ripete il nome dello speaker per ogni trasmissione che ha fatto ...io invece voglio lo speaker ed una sola (per esempio l'ultima) trasmissione
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

  6. #16
    giustamente un sito osserva che JOIN è un PRODOTTO CARTESIANO ...più che un PESCARE VALORI da altre tabelle
    Farmacia di Jarno - le mie pillole: Cookie [#780810], Dom4Php4 [#1123236], Fade [#1139489], getCssProperty [#1152911]
    Inchinatevi difronte al Prof! Nacchio!

    A me pare che l'uomo vada avanti con la retromarcia

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.