Autor | Zpráva | ||
---|---|---|---|
Madenio Profil |
#1 · Zasláno: 6. 8. 2012, 15:55:52
Dobry den, potreboval by som pomoct s MySQL query pre vytiahnutie dat z dvoch tabuliek. Pripravujem jeden modul, ktory ma za ulohu prekladanie textov do zvoleneho jazyka. V jednej tabulke (sections) mam zdrojove texty a do druhej tabulky (translations) sa ukladaju preklady, ktore sa spajaju so zdrojovou tabulkou pomocou prislusnej ID referencie a odlisuju sa podla ID jazyka v cielovej tabulke.
Skriptom si chcem teda nacitat zdrojove texty a pomocou LEFT JOIN k nim priradit preklad, aj ked este neexistuje. Robim to pomocou nasledujucej query: SELECT sections.*, translations.* FROM sections LEFT JOIN translations ON sections.section_id = translations.translation_section_id WHERE sections.section_book_id = '8' AND (translations.translation_language_id = '1' OR translations.translation_language_id IS NULL) LIMIT 10 Toto vsetko funguje fajn, ale len do chvile, ked uz neexistuje preklad v cielovej tabulke s ID ineho jazyka. V takom pripade sa mi uz pre ine ID jazyka nenacita nic. Potreboval by som to nejakym univerzalnym sposobom spojazdnit, ze sa mi bud nacita existujuci zaznam pre konkretny jazyk v cielovej tabulke a ked neexistuje, tak sa nacitaju prazdne polia po JOINe. Dakujem za kazdu radu. |
||
JaySee Profil |
#2 · Zasláno: 6. 8. 2012, 16:54:01
|
||
Madenio Profil |
#3 · Zasláno: 6. 8. 2012, 17:22:12
Velmi pekne dakujem!
|
||
JaySee Profil |
#4 · Zasláno: 6. 8. 2012, 17:43:52
Madenio:
Jo Kajman je borec! |
||
Madenio Profil |
#5 · Zasláno: 6. 8. 2012, 18:01:18
Nakoniec som to vyriesil inak, nakolko tvoj pripad nebol uplne rovnaky ako moj. Mne staci, aby sa zobrazili prazdne polia, cize spravil som nasledovne:
SELECT sections.*, translations.* FROM sections LEFT OUTER JOIN translations ON sections.section_id = translations.translation_section_id AND translations.translation_language_id = '1' WHERE sections.section_book_id = '9' LIMIT 10 |
||
Časová prodleva: 12 let
|
0