Visualizzazione risultati 1 fino 5 di 5

Discussione: [SQL] "Join inversa" sulla stessa tabella

  1. #1
    Guest

    Predefinito [SQL] "Join inversa" sulla stessa tabella

    Ciao a tutti,
    rieccomi dopo molto tempo con le mie domande a bruciapelo...

    ho questa tabella (moolto semplificata):

    Codice:
    id | cover
    1    0
    2    0
    3    0
    4    0
    5    0
    6    0
    7    0
    8    7
    Entrambi campi INT, il primo è l'index, quindi Auto Increment.

    Ora, vorrei fare in modo che una select mi restituisca tutti i campi tranne quelli in cui il campo id e quello cover sono uguali. Quindi nell'esempio:

    Codice:
    id | cover
    1    0
    2    0
    3    0
    4    0
    5    0
    6    0
    Non idea di come poter fare... son arrivato a provare combinazioni per me assurde del tipo:

    Codice:
    SELECT * FROM songs INNER JOIN songs songs2 ON songs.id != songs2.cover
    Ma non va comunque...
    idee?

  2. #2
    Guest

    Predefinito

    Codice:
    SELECT * FROM songs WHERE id != cover

  3. #3
    Guest

    Predefinito

    Uhm no... in quel modo li selezionerà tutti, giacché confronta i campi della stessa riga. A me serve che li confronti fra le varie righe diverse, e se ce ne sono due uguali (cover dell'uno e id dell'altra) non restituisca ne l'una nell'altra.
    Ultima modifica di Zorinik : 17-07-2009 alle ore 23.05.08

  4. #4
    Guest

    Predefinito

    ah.. scusa avevo capito male l'esempio. Aspetta ci penso un attimo ;D
    Ultima modifica di stoner : 17-07-2009 alle ore 23.19.59

  5. #5
    Guest

    Predefinito

    Ho appena risolto con una roba del genere dopo decine e decine di tentativi...
    Codice:
    SELECT * FROM songs WHERE songs.cover NOT IN (SELECT id FROM songs) AND songs.id NOT IN (SELECT cover FROM songs)
    Certo un modo più sbrigativo (considerando che questa è solo una parte della query finale che mi serve xD) sarebbe più pratico, ma vabè, al massimo mi tengo questa, thanks anyway :P

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •