Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    [php - MySql] query_tot - query_perziale= query da aggiornare

    Salve a tutti, e scusate pe ril titolo...ma ciò che ho scirtto è proprio ciò che devo trovare.
    Praticamente ho 3 tabelle

    tab_utenti
    id(primaria), nome, cognome...

    tab_news
    id(primaria), titolo, stralcio,...

    tab_associazioni_news_utente
    id_utenti, id_news, attivo
    id_utenti,id_news sono primarie

    Qual è il problema?
    Ho creato un pannello dove posso andare ad associare ad ogni utente una lista di news e finquì molto facile.
    Ora ho la necessità di andare ad associare una news a + utenti, e anche qui facile apparte il fatto che...devo visualizzare sul pannello della gesione soltanto gli utenti ai quali quella news non è gia associata.
    Ho inserito diversi controlli, affinche se riassocio all'utente la news selezionata, non crei doppioni e restituisca errori nelle varie tabelle correlate...

    Ma vorrei risolvere il problema dal nascere (pur lasciando i vari controlli)

    quindi...
    query_1 --> effettuo una queri dalla tabella in cui ho associato all'utente la news (tab_associazioni_news_utente)
    query2 --> effettuo una query sulla tabella utenti (tutti)

    query_2 -(meno) query_1 = lista utenti ai quali quella news non è associata

    Chi mi sa dare una mano per formulare questa query??

    Grazie a tutti per l'interessamento e spero di essere stato abbastanza chiaro nell'esporre il problema.

    Roberto

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    qualcuno pratico di query?
    mhh...
    forse sbaglio..ma ho letto qualcosa che mi consiglia di utilizzare un $query="SELECT DISTINCT FROM TABELLA1 JOIN TABELLA2...";
    Che ne dite... è corretto? ora la provo e poi vi faccio sapere.
    Se avete un cosndiglio o siete rpatici di join..fatemi sapere...(mi accorcerete i tempi di realizzazione)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    UP...

    Nessuno che si intende di query particolari?

  4. #4

    Re: [php - MySql] query_tot - query_perziale= query da aggiornare

    ops chiedo scusa, stavo scrivendo e per errore ho premuto INVIA invece che ANTEPRIMA, e non posso piu' cancellare il messaggio...

  5. #5
    Cioè tu per una determinata news vuoi avere la lista di utenti cui quella news non è associata, ho capito bene?

    Prova con:
    codice:
    SELECT id
    FROM tab_utenti
    WHERE id NOT IN (
       SELECT DISTINCT id_utente AS id
       FROM tab_utenti AS u
       JOIN tab_ass_news AS tan ON u.id_utente = tan.id_utente
    )
    però non la ho testata e l'ho scritta di getto quindi probabile anche che non funzioni...cmq prova non si può mai sapere :P

    La logica è:
    Seleziono tutti gli ID degli utenti che non presentano una relazione con un elenco di news

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    grazie epr l'aiuto, però non và... mi restituisce l'elenco completo di tutti gli utenti presenti nella tabella degli utenti, compresi anche quelli presenti nella tabella associazione_news_utente
    mhhhh... eppure di logica dovrebbe andare...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    aspetta aspetta...
    ci son un paio di cose che non mi riportano... la logica che hai spiegato è corretta... però... io devo trovare nella query interna tutti gli id_utenti applicati a quella news che ho selezionato,
    quindi sarà:

    SELECT id
    FROM tab_utenti
    WHERE id NOT IN (
    SELECT DISTINCT id_utente(chiave primaria della tabella) AS id
    FROM tab_utenti AS u
    JOIN tab_ass_news AS tan ON u.id_utente = tan.id_utente WHERE id_news(selezionata)='$innews')

    manca la condizione per cui quegli id non vanno presi nella query finale.
    ora la provo e poi ti dico.


    PROVA EFFETTUATA:
    stesso identico risultato. ritrova tutti gli id anche quelli che nella tabella associazione news utente sono abbinati alla news '164'
    mhhhh... dove stà l'errore?

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    Questa è la soluzione


    SELECT id from tabella_utenti
    WHERE id NOT IN ( SELECT DISTINCT id_utenti from tabella_assso_news_utenti where id_news='$news_scelta')

    Grazie per l'aiuto!! stai stato gentilisismo... pensavo che era + complicata da costruire...


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.