Visualizzazione dei risultati da 1 a 9 su 9

Discussione: sql - calcolino...

  1. #1
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313

    sql - calcolino...

    ho due tabelle:

    tabella1
    idTabella1
    nome1

    -------------

    tabella2
    idTabella2
    idTabella1
    nome2



    voglio sapere quanti idTabella1 non compaiono in tabella2. É possibile con una sola query?
    alcool: la causa e la soluzione di tutti i problemi

  2. #2
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    cosi che se in tabella1 ho 20 id e di questi 20, solo 7 appaiono in tabella2, ottengo come risultato della query 13...
    alcool: la causa e la soluzione di tutti i problemi

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    select count(*) from tabella1 where idtabella1 not in ( select distinct idtabella1 from tabella2)

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    50
    esiste la OUTER JOIN,

    SELECT count(*)
    FROM tabella1 LEFT OUTER JOIN tabella2
    WHERE idTabella2 is null;

    dovrebbe andare, l'ho fatta così in 2 minuti... fammi sapere.. ciao

  5. #5
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    ciao, l'ho provata ma mi da un errore di sintassi.. boh.. consigli?
    alcool: la causa e la soluzione di tutti i problemi

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    50
    dimenticavo la condizione.... cmq anche l'altra soluzione è esatta!!


    SELECT count(*)
    FROM tabella1 AS T1 LEFT OUTER JOIN tabella2 AS T2 on T1.idTabella1 = T2.idTabella1
    WHERE idTabella2 is null;

  7. #7
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    FUNZIONA!.. ma io sono un pir*a... in realtà non avevo capito quello che mi avevano chiesto:

    devo fare una query che come risultato mi dia tutti gli idTabella1 che non sono presenti in idTabella2...

    con oracle si puo fare qlc tipo:

    select idtabella1 from tabella1
    MINUS select idtabella1 from tabella2


    idee? ora guardo il manuale..
    alcool: la causa e la soluzione di tutti i problemi

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    50
    scusa ma non ho capito cosa devi fare.. praticamente invice di avere il numero di id1 devi visualizzarli tutti?

  9. #9
    Utente di HTML.it L'avatar di Gumble
    Registrato dal
    Jun 2004
    Messaggi
    1,313
    si... tutti gli id che non ci sono nella tabella2

    é una semplice esclusione (teoria insiemistica) ho risolto (spero)cosi:

    codice:
    SELECT * FROM tabella1 WHERE idtabella1 NOT IN (SELECT idtabella1 FROM tabella2)
    alcool: la causa e la soluzione di tutti i problemi

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