Autor Zpráva
Sylar
Profil
Zdravím,
mohl by mi někdo vysvětlit proč v tomto případě mi databáze hodí chybu, že nezná sloupec m.sekce
SELECT
            m.id AS id, img, link, s.id AS id_sekce, s.nazev AS sekce, m.nazev AS nazev
          FROM
            ?_modules_administrace m, ?_admins_rights_mn r
          RIGHT JOIN
            ?_modules_sekce_administrace s
          ON
            s.id = m.sekce // tady to hodí chybu Unknown column 'm.sekce' in 'on clause'
          WHERE
            id_page = m.id AND
            id_prava = '" . $_SESSION['admin']['prava'] . "' AND
            r.cteni = '1' AND
            m.zobraz = '1'
          ORDER BY
            poradi, nazev

a v tomto případě provede dotaz zcela normálně ?
SELECT
            m.id AS id, img, link, s.id AS id_sekce, s.nazev AS sekce, m.nazev AS nazev
          FROM
            ?_modules_administrace m, ?_admins_rights_mn r, ?_modules_sekce_administrace s
          WHERE
            id_page = m.id AND
            id_prava = '" . $_SESSION['admin']['prava'] . "' AND
            r.cteni = '1' AND
            m.zobraz = '1' AND
            s.id = m.sekce // tady to sloupec z db zná
          ORDER BY
            poradi, nazev
Tori
Profil
Manuál praví s platností od ver.5.0.12:
... the precedence of the comma operator is less than than of INNER JOIN, CROSS
JOIN, LEFT JOIN, and so on. If you mix comma joins with the other join types when there is
a join condition, an error of the form Unknown column 'col_name' in 'on
clause' may occur.

Takže buď nahraďte čárku INNER JOIN, anebo použijte závorky:
SELECT
            m.id AS id, img, link, s.id AS id_sekce, s.nazev AS sekce, m.nazev AS nazev
          FROM
            (?_modules_administrace m, ?_admins_rights_mn r)
          RIGHT JOIN
            ?_modules_sekce_administrace s
          ON
            s.id = m.sekce
          WHERE
            id_page = m.id AND
            id_prava = '" . $_SESSION['admin']['prava'] . "' AND
            r.cteni = '1' AND
            m.zobraz = '1'
          ORDER BY
            poradi, nazev

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0