Diskuze: SQS dotaz s joinem přes vazební tabulku nebo tak něco
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Nakonec jsem to vyřešil takto, což si myslím, že je správně:
SELECT isd_modules_access.id, isd_modules_access.icon, isd_modules_access.name, isd_modules_access.link, isd_modules_access.depandent
FROM isd_modules_access
WHERE isd_modules_access.active = 1
AND isd_modules_access.depandent IS NULL
AND isd_modules_access.id IN (
SELECT isd_permissions.module_id
FROM isd_permissions
WHERE isd_permissions.user_id = ?
)
Toto je asi špatnej zápis
RIGHT JOIN isd_permissions ON = isd_modules_access.id = isd_permissions.module_id
takto je to správně
RIGHT JOIN isd_permissions ON (isd_modules_access.id = isd_permissions.module_id)
jinak pro příště si můžeš skrátit zápis takto
SELECT m.id, m.icon, m.name, m.link, m.depandent
FROM isd_modules_access m
WHERE m.active = 1
AND m.depandent IS NULL
AND m.id IN (
SELECT p.module_id
FROM isd_permissions p
WHERE p.user_id = ?
)
JOINy btw. patří mezi FROM a WHERE a syntaxe je
JOIN isd_permissions ON isd_modules_access.id = isd_permissions.module_id
Zobrazeno 4 zpráv z 4.