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

    problemino sql e motore di ricerca..

    ragazzi ho un db composto da una tabella padre e una figlio.

    La tabella figlio ha un campo "id_figlio" in cui è inserito l'id corrispondente della tabella padre.


    Ora ho creato un motore di ricerca in cui effettuo la ricerca sulle due tabelle. Il mio problema è che se una parola è presente sia sulla tabella padre che sulla tabella figlio, la ricerca mi da come risultato due volte la stessa notizia....

    ecco il sql che ho usato:

    sql = "SELECT * FROM TABELLAPADRE INNER JOIN TABELLAFIGLIO ON tabellapadre.id = tabellafiglio.id_figlio WHERE ...qui le stringhe automatiche create dal motore....

    ho sbagliato ad usare l' INNER JOIN? esiste un'alternativa?
    Despite of my rage i'm still just a rat in a cage

  2. #2
    intanto nella select dovresti specificare i campi che ti servono e non l'*.
    Poi dovresti utilizzare anche dei group by
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  3. #3

    ...

    con il grup by come potrei fare?
    Despite of my rage i'm still just a rat in a cage

  4. #4
    qualcosa del genere:

    sql = "SELECT TabellaPadre.Notizia, TabellaFiglia.AltroCampo FROM TABELLAPADRE INNER JOIN TABELLAFIGLIO ON tabellapadre.id = tabellafiglio.id_figlio WHERE... GROUP BY TabellaPadre.Notizia, TabellaFiglia.AltroCampo
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  5. #5

    ...

    Avevo già provato così...ma nulla mi ripete sempre i risultati in cui la keyword compaia più di una volta....

    es: 9 riscontri della keyword nella tabella figlio, 9 risultati uguali ripetuti....
    Despite of my rage i'm still just a rat in a cage

  6. #6
    perchè evidentemente c'è un campo che varia per ogni riga, per questo non è raggruppabile.
    EX Mentecatto - succube della Honda
    Le mie foto|HONDA CLUB ITALIA!|DARTH LEGNANZ!

  7. #7

    ...

    sto impazzendo dietro questo motore...

    buttando giù la mi stringa sql...

    come posso fare in modo che anche se nella tabella figlio ci sono più risultati ricunducibili alla tabella padre( padre.id_padre = figli.id_figlio ) la ricerca mi dia un solo risultato?

    Despite of my rage i'm still just a rat in a cage

  8. #8
    apparte che non capisco come una notizia sia figlia di se stessa, cmq

    fai così,

    estrai con la query solo gli ID DELLA TABELLA PADRE (che mi sembra siano quelli che ti servono) e metti nella clausola:

    select distinct(tabellapdre.id) from......


    . poi con gli id che ti ricavi looppi il tutto e ti viosualizzi i record che ti servono


    oppure puoi annidare le due select usando " idpadre in (select * from...)

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.