Visualizzazione dei risultati da 1 a 10 su 16

Visualizzazione discussione

  1. #1

    [mysql] problema logico Left join su 4 tabelle

    Salve a tutti,
    ho un problema logico (semplice, banale, sicuramente da niubbo) per trovare un id su N tabelle associative.
    Questo lo schema di esempio
    Codice PHP:
    ACCOUNT
    -------+-----+
    name uid |
    -------+-----+
    aaa  |   |
    bbb  |   |
    ccc  |   |
    ddd  |   |
    eee  |   |
    -------+-----+

    PIPPO
    -------+-----+
    piid uid |
    -------+-----+
    1    |   |
    2    |   |
    -------+-----+

    PLUTO
    -------+-----+
    plid uid |
    -------+-----+
    1    |   |
    -------+-----+

    PAPERINO
    -------+-----+
    paid uid |
    -------+-----+
    |      |     |
    -------+-----+ 

    In pratica ho i vari uid della tabella ACCOUNT presenti (o NON presenti) nelle altre tabelle PIPPO, PLUTO e PAPERINO
    Quello che voglio ottenere è l'elenco degli UID che sono presenti nelle tabelle PIPPO, PLUTO e PAPERINO ovvero:


    Codice PHP:
    -------+-----+
    1    |   |
    2    |   |
    -------+-----+ 

    Fare una cosa così ovviamente mi tira fuori tutti gli UID che sono presenti anche nella tabella ACCOUNT
    Codice PHP:
    SELECT FROM ACCOUNT
    LEFT JOIN PIPPO ON PIPPO
    .uid ACCOUNT.uid 
    LEFT JOIN PLUTO ON PLUTO
    .uid ACCOUNT.uid
    LEFT JOIN PAPERINO ON PAPERINO
    .uid ACCOUNT.uid 

    Fare così funziona ma non mi piace e volevo trovare qualcosa di più efficiente:
    Codice PHP:
    SELECT FROM ACCOUNT
    WHERE
    ACCOUNT
    .uid IN (SELECT uid FROM PIPPO) OR
    ACCOUNT.uid IN (SELECT uid FROM PLUTO) OR
    ACCOUNT.uid IN (SELECT uid FROM PAPERINO

    Dove sbaglio? :\
    Ultima modifica di PazZII; 05-01-2014 a 00:40

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.