Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Errore 1054

  1. #1

    Errore 1054

    Salve ragazzi. Una stessa query su mysql MySQL 4.1.21-standard funziona mentre su MySQL 5.0.27-community-nt restituisce questo errore:

    1054 Unknown column 'c.parent_id' in 'on clause'
    in:
    [SELECT c.categories_id as id, c.parent_id, cd.categories_name as cName, cd2.categories_name as pName FROM zen_categories c, zen_categories_description cd LEFT JOIN zen_categories_description cd2 ON c.parent_id=cd2.categories_id AND cd2.language_id='2' WHERE c.categories_id=cd.categories_id AND cd.language_id='2']
    Le tabelle in questione sono le seguenti:

    codice:
    CREATE TABLE `zen_categories` (
      `categories_id` int(11) NOT NULL auto_increment,
      `categories_image` varchar(64) default NULL,
      `parent_id` int(11) NOT NULL default '0',
      `sort_order` int(3) default NULL,
      `date_added` datetime default NULL,
      `last_modified` datetime default NULL,
      `categories_status` tinyint(1) NOT NULL default '1',
      PRIMARY KEY  (`categories_id`),
      KEY `idx_parent_id_cat_id_zen` (`parent_id`,`categories_id`),
      KEY `idx_status_zen` (`categories_status`),
      KEY `idx_sort_order_zen` (`sort_order`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=125 ;
    
    CREATE TABLE `zen_categories_description` (
      `categories_id` int(11) NOT NULL default '0',
      `language_id` int(11) NOT NULL default '1',
      `categories_name` varchar(32) NOT NULL default '',
      `categories_description` text NOT NULL,
      PRIMARY KEY  (`categories_id`,`language_id`),
      KEY `idx_categories_name_zen` (`categories_name`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    Mi aiutate a risolvere? Le tabelle in questione servono a far funzionare zencart e il plugin che contiene questa query è "seo url" (se può essere un aiuto ulteriore). Grazie mille! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  2. #2
    A quanto pare è un bug che si è già verificato con versioni precedenti di MYSQL. Evidentemente si è ripresentato perchè sembra avessero risolto. Cmq io leggendo la pagina non ci ho capito assolutamente niente. Qualcuno potrebbe spiegarmi qual è la soluzione? Grazie mille! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    Allora, ho trovato anche la soluzione (credo) ma non la so applicare. Nel frattempo la posto e comincio a fare qualche prova. Quando ci riesco posto. Se qualcuno ci riesce prima posti a sua volta! Grazie! Ciao!

    This is a change that was made in 5.0.15 to make MySQL more compliant with the
    standard.
    According to the SQL:2003

    <from clause> ::= FROM <table reference list>
    <table reference list> ::=
    <table reference> [ { <comma> <table reference> }... ]
    <table reference> ::=
    <table factor>
    | <joined table>
    <joined table> ::=
    <cross join>
    | <qualified join>
    | <natural join>
    ...

    Thus when you write

    ... FROM t1 , t2 LEFT JOIN t3 ON (expr)

    it is parsed as

    (1) ... FROM t1 , (t2 LEFT JOIN t3 ON (expr))

    and not as

    (2) ... FROM (t1 , t2) LEFT JOIN t3 ON (expr)

    so, from expr you can only refer to columns of t2 and t3 - operands of the
    join.
    Workaround - to put parentheses explicitly as in (2). Then you can refer to t1
    columns from expr.

    Unfortunately, this change is not properly documented in the manual, it will be
    fixed.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    La soluzione più semplice del mondo.

    Bastava raggruppare tra parentesi i nomi delle tabelle dopo FROM.

    Vabbè, grazie lo stesso. Spero che possa essere utile a qualcun altro questo "monologo"! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  5. #5
    Utente di HTML.it L'avatar di jeppox
    Registrato dal
    Mar 2007
    Messaggi
    436
    comde dice il detto? aiutati che Dio ti aiuta

    si vede che lavorarci su e non mollare porta a risultati.

    buono a sapersi

  6. #6
    E' verissimo!
    Cmq fare un 3d del genere può essere utile per qualcun altro che si barcamena un po' meno tra pagine di codice e spiegazioni un po' più tecniche.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.