Autore Topic: Problema con query su database sqlite  (Letto 841 volte)

Offline Albe85

  • Utente junior
  • **
  • Post: 102
  • Respect: +1
    • Mostra profilo
Problema con query su database sqlite
« il: 11 Novembre 2010, 11:52:42 CET »
0
Salve ragazzi.
Ho un problema nel fare una query sul database sqlite....
Io con la seguente query mi tiro fuori dal db tutti gli articoli (o prodotti) che sono nella lista della spesa:
Codice (SQL): [Seleziona]
SELECT prodotti._id,logspesadb._id2,prodotti.NOMEAR,prodotti.URIIMG,logspesadb.IDARL,prodotti.IDARA FROM prodotti,logspesadb WHERE prodotti.IDARA = logspesadb.IDARL ;
e come risultato ho quello in figura 1.jpg

Ora io mi vorrei tirare fuori i prodotti che non sono nella lista della spesa...pensavo bastasse mettere un != al posto dell'uguale ma cosi facendo con la seguente query:
Codice (SQL): [Seleziona]
SELECT prodotti._id,logspesadb._id2,prodotti.NOMEAR,prodotti.URIIMG,logspesadb.IDARL,prodotti.IDARA FROM prodotti,logspesadb WHERE prodotti.IDARA != logspesadb.IDARL GROUP BY prodotti.NOMEAR;
ho il risultato in figura 2.jpg. Non riesco a capire come mai non mi restituisca solo gli articoli che non sono presenti in lista spesa.

Vi ringrazio ciao!

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Problema con query su database sqlite
« Risposta #1 il: 11 Novembre 2010, 12:12:19 CET »
+3
Prova ad usare le join:

Codice: [Seleziona]
SELECT prodotti._id,logspesadb._id2,prodotti.NOMEAR,prodotti.URIIMG,logspesadb.IDARL,prodotti.IDARA FROM prodotti left join logspesadb on (prodotti.IDARA = logspesadb.IDARL) where logspesadb._id is null
dovrebbe funzionare.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Problema con query su database sqlite
« Risposta #2 il: 11 Novembre 2010, 12:13:57 CET »
0
Spero di non dirti una cavolata, non posso testarlo ma in teoria te dovresti usare la funzione NOT IN.
in pratica sarebbe

SELECT prodotti._id,ecc FROM prodotti where prodotti.IDARA NOT INT (SELECT distinct logspesadb.IDARL from logspesadb)

non ne sono sicuro perchè l'in l'ho sempre usato al rovescio.
prova a eseguire la query con il database explorer di eclipse, è molto piu veloce che testarlo nell'applicazione!

PS: non so se è piu performante della join, forse si
« Ultima modifica: 11 Novembre 2010, 12:17:48 CET da Nicola_D »
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Albe85

  • Utente junior
  • **
  • Post: 102
  • Respect: +1
    • Mostra profilo
Re:Problema con query su database sqlite
« Risposta #3 il: 11 Novembre 2010, 12:22:15 CET »
0
grazie mille...con le join funziona alla perfezione.... alla condizione  where logspesadb._id2 is null non ci sarei mai arrivato...grazie ancora...