Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Aiuto per query

  1. #1
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193

    Aiuto per query

    Da una tabella siffatta:

    codice:
    chat_id | user_id
    ----------------
    3          |     1
    3          |     2
    1          |     1
    4          |     1
    5          |     2
    1          |     4
    7          |     8
    ...
    Come formulereste una query che mi restituisce il chat_id 3 ? Ovvero quel chat_id a cui corrispondono lo user_id 1 e lo user_id 2? Mi sembra che sia una cazzata ma non riesco a formulare una soluzione :| user_id 1 e user_id 2 sono due valori dati, che ho a disposizione mettiamo in due variabili $user_a_id e $user_b_id.

    Ovviamente nella tabella chat_id può essere qualsiasi numero intero > 0, così come user_id, con la certezza che per ogni chat_id possono esserci massimo due user_id differenti.

  2. #2
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Sapevo che aprire il topic sarebbe servito, ogni volta che lo faccio dopo pochi minuti mi viene in mente la soluzione

    codice:
    SELECT chat_id, count(distinct user_id) as num FROM `chat_user`
    group by chat_id
    order by num desc
    limit 1

  3. #3
    ma anche:

    codice:
    SELECT chat_id FROM chat_user 
    WHERE user_id IN(1,2)
    group by chat_id
    having count(chat_id) = 2

    edit..... @ ma non sarei cosi' certo della tua. Devi indicare gli user_id

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di Cerebro
    Registrato dal
    Jan 2005
    Messaggi
    193
    Sì giusto, ho omesso il where perchè nella tabella di test avevo inserito solo 1 e 2

    Poi ero arrivato ad un'altra forma:

    codice:
    select chat_id, count(distinct(user_id)) as num
    from `chat_user`
    where user_id in ($user_id, $with_user_id)
    group by chat_id
    having num = 2
    Ma la tua sembra più pulita

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 © 2026 vBulletin Solutions, Inc. All rights reserved.