Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    [MYSQL] Errore nella subquery

    Ciao a tutti.

    Ho creato 3 tabelle di prova così fatte:

    CREATE TABLE 'utenti' ('id' INT(6) NOT NULL, 'nome' VARCHAR(50), PRIMARY KEY('id'));
    CREATE TABLE 'articoli' ('art' INT(6) NOT NULL, 'testo' BLOB, PRIMARY KEY('art'));
    CREATE TABLE 'letti' ('id' INT(6) NOT NULL, 'art' INT(6), PRIMARY KEY('id', 'art'));

    Se adesso volessi prendere tutti gli articoli che l'utente PIPPO non ha ancora letto vorrei fare

    SELECT * FROM 'articoli' WHERE art NOT IN (SELECT letti.art FROM utenti, letti WHERE utenti.id = letti.id and utenti.nome = 'PIPPO')

    Io uso MYSQL-Front per eseguire la query e mi restituisce un errore generico senza un codice o qualcosa che mi faccia capire cosa non funziona.

    C'è qualcuno che può aiutarmi, per favore?
    Grazie.

  2. #2
    up

  3. #3
    sei sicuro che mysql-front non sia obsoleto??? mi pare che sia fermo a parecchio tempo fa. Prova ad usare SQLyog. La community edition e' free.

    http://www.webyog.com/en/downloads.php

    comunque in ogni caso non devi mettere le apici ai nomi dei campi.

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

  4. #4
    Ciao Piero.
    Ti ringrazio per il suggerimento: uso SQL Front da diversi anni e non mi ero mai posto il problema di cambiarlo con qualcosa di più recente.

    Ho scaricato, installato ed utilizzato SQLyog come mi hai suggerito ed effettivamente è un'altra cosa!
    Tuttavia il mio problema non è stato risolto.

    La query

    Codice PHP:
    SELECT 
    FROM articoli 
    WHERE art NOT IN 
    (SELECT letti.art FROM utentiletti WHERE utenti.id letti.id AND utenti.nome 'Claudio'
    continua a restituire il seguente errore

    Error Code : 1064
    You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT letti.art FROM utenti, letti WHERE utenti.id = letti.id


    Eppure la sintassi è SQL standard e dovrebbe funzionare.
    Sai darmi qualche altro prezioso consiglio?

  5. #5
    qual'e' la tua versione di mysql?

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

  6. #6
    Me lo sono chiesto un attimo dopo averti scritto.
    Ero certo di avere la 5.0 ma, guardando tra le "Server Variables" di SQLYog ho trovato la variabile "version" valorizzata con 4.0.25-nt.

    A questo punto temo che il problema sia questo.
    Hai per caso un link che mi permetta di aggiornare il Mysql? ... magari senza perdere i database che ho attualmente!

    Grazie mille!

  7. #7
    infatti il problema e' quello. Le sub-query le trovi a partire da mysql 4.1

    devi seguire la procedura prevista. Ci sono parecchie diversita' strutturali tra 4.0, 4.1 e 5.0. Specie tra 4.0 e 4.1

    http://dev.mysql.com/doc/refman/4.1/en/upgrade.html
    http://dev.mysql.com/doc/refman/5.0/en/upgrade.html

    Enjoy your job.....

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

  8. #8
    OK.
    Grazie mille!!!

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.