Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Amici in comune

  1. #1

    Amici in comune

    Avete presente Facebook che vi dice quanti amici in comune hai con una persona?
    Bene, a me serve fare una cosa del genere e anche se inizialmente può sembrare semplice, la cosa mi fa diventare matto.

    Io attualmente ho una struttura del tipo:

    amicizie:

    ID1 | ID2
    1 | 3
    1 | 7
    6 | 1
    6 | 2
    2 | 9
    7 | 2

    ecc

    Ovviamente sono ripetuti record doppi tipo:
    1 | 3
    3 | 1
    (se 1 è amico di 3, è inutile ribadire che 3 è amico di 1)

    Ora io che query potrei fare per estrarmi gli amici in comune che hanno 1 e 2?
    (in questo caso dovrebbe tirarmi fuori 7 e 6)

  2. #2
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    codice:
    select t1.amico1 as amici_comuni from (
    select id2 as amico1 from tabella where id1 = 1
    union
    select id1 from tabella where id2 = 1) as t1 
    left join (
    select id2 as amico2 from tabella where id1 = 2
    union
    select id1 from tabella where id2 = 2
    ) as t2
    on t1.amico1 = t2.amico2
    where t2.amico2 is not null

    edit.

    Scusate. Come ogni tanto accade non riuscivo a postare. Spero che adesso non vengano caricati dieci post uguali.

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    doppio

  4. #4
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922

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.