Autor Zpráva
SteveO
Profil *
Zdravím,

vrtám se Opencartu a zasekl jsem se u tohohle kódu:

$this->db->query("SELECT DISTINCT *, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" . (int)$category_id . "') AS keyword FROM " . DB_PREFIX . "category WHERE category_id = '" . (int)$category_id . "'");

Tohle vytáhne jednu kategorii podle ID a k ní keyword. Potřeboval bych to upravit tak, aby se vytáhly všechny kategorie najednou, tedy nějak takto:

$this->db->query("SELECT DISTINCT *, (SELECT keyword FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=' + c.category_id) AS keyword FROM " . DB_PREFIX . "category c");

Můžete prosím někdo poradit, jak na to? Díky moc.
Kajman
Profil
Na které databázi (mysql, posgresql, mssql, ...) to běží?
SteveO
Profil *
MySQL.

Vyřešil jsem to zatím takhle, ale nevím, jestli je to správně... výsledky to ale snad vrací správné:

$this->db->query("SELECT DISTINCT *, (SELECT keyword FROM url_alias WHERE query = concat('category_id=', category_id)) AS keyword FROM category")
Kajman
Profil
Ano, v mysql je na spojení řetězců funkce concat. Mělo by to fungovat, rychlost nezaručena.

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: