Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [MYSql] - UNa query

  1. #1

    [MYSql] - UNa query

    codice:
    SELECT pp.post_id, pp.topic_id,pp.forum_id, post_time, topic_title, pf.forum_name, pp.poster_id, pu.username, pf.forum_id 
    FROM phpbb3_posts pp, phpbb3_topics pt, phpbb3_forums pf, phpbb3_users pu 
    WHERE pp.topic_id = pt.topic_id AND pu.user_id = pp.poster_id AND pf.forum_id = pp.forum_id AND pp.forum_id = pt.forum_id AND pp.post_id = pt.topic_last_post_id 
    AND pf.forum_id = 19 AND pf.forum_id = 20 AND pf.forum_id = 30 AND pf.forum_id = 31 AND pf.forum_id = 28 AND pf.forum_id = 25 
    GROUP BY pp.topic_id ORDER BY post_time DESC LIMIT 0,15
    Questa è una query che dovrebbe estrarre da un forum phpbb, una serire di dati relativi a diversi forum. Non funziona a causa della linea evidenziata in rosso.
    Infatti se inserisco solo un AND va, ma se ne inserisco di più non restituisce nulla. Qui tutto ok.

    Ora, ho provato a sostituire gli AND dopo il primo AND pf.forum_id = 19 con degli OR, ma non funziona.

    Come la modifico per poter estrarre tutti i valori che abbiano con forumid 19 oppure 20 oppure 21 ecc.?

    grazie

  2. #2
    AND pf.forum_id = 19
    AND pf.forum_id = 20
    AND pf.forum_id = 30
    AND pf.forum_id = 31
    AND pf.forum_id = 28
    AND pf.forum_id = 25

    se e' uno non puo' essere un'altro.

    puoi usare OR ma tra parentesi (tutte le or) oppure la funzione IN().

    codice:
    WHERE pp.topic_id = pt.topic_id 
    AND pu.user_id = pp.poster_id 
    AND pf.forum_id = pp.forum_id 
    AND pp.forum_id = pt.forum_id 
    AND pp.post_id = pt.topic_last_post_id 
    AND pf.forum_id IN(19, 20 , 30, 31, 28, 25)

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

  3. #3

  4. #4
    scusate, il contrario della funzione IN...
    cioè estrarre tutti i dati che NON fanno parte di un determinato campo.

    Avevo pensato alla negazione di IN quindi

    AND pf.forum_id !IN(19, 20 , 30, 31, 28, 25)
    ma mi restituisce un errore.

    come fare?

  5. #5
    NOT IN()
    « Se nella prima mezz'ora non capisci chi è il pollo, allora il pollo sei tu. » [Thomas "Amarillo Slim" Preston, campione del mondo di poker]

  6. #6
    grazie.

    avevo spulciato il manuale online di mysql ma non riuscivo a trovare la pagina delle funzioni.

    ora l'ho trovata.

    Scusate ancora per il disturbo ragazzi.

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.