Autor | Zpráva | ||
---|---|---|---|
Jakuje Profil |
#1 · Zasláno: 3. 9. 2007, 14:53:25
Dá se nějak slušně nastránkovat SQL dotaz s JOINem? LIMIT moc dobře nejde, protože to vrací všechno z "poddotazu", ale já bych rád aby to nějak limitovalo pouze hlavní tabulku.
Omlouvám se, jestli se to tu už někde řešilo. Příklad:
Jde o to jestli se to dá nějak ošmelit v dotazu, nebo musím udělat ještě jeden a nebo sis tím hrát v PHP |
||
Alphard Profil |
#2 · Zasláno: 3. 9. 2007, 20:30:27
můžeš uvést příklad?
podle mě by měl tvůj dotaz vypsat 4 záznamy z tabulky catalog a najít k nim související záznamy z images |
||
Jakuje Profil |
#3 · Zasláno: 3. 9. 2007, 20:34:59
No, jnže ono to limituje kombinace catalog a jmages, takže to vrací jeden řádek z catalog 4x a k tomu pokaždé jiný obrázek. Toť zvyk JOINŮ co vím ...
|
||
bukaj Profil |
#4 · Zasláno: 3. 9. 2007, 20:57:34
Jakuje
No, jnže ono to limituje kombinace catalog a jmages, takže to vrací jeden řádek z catalog 4x a k tomu pokaždé jiný obrázek. Toť zvyk JOINŮ co vím ... To ale dělá INNER JOIN, co vím... |
||
Alphard Profil |
#5 · Zasláno: 3. 9. 2007, 21:07:10
aha, jiná struktura, než jsem předpokládal
takže je potřeba vypsat 4 záznamy z catalog a k tomu všechny z images, tedy třeba 10 řádků? |
||
Jakuje Profil |
#6 · Zasláno: 3. 9. 2007, 21:31:13
je potřeba vypsat 4 záznamy z catalog a k tomu všechny z images, tedy třeba 10 řádků?
jj. Nějak tak ... už jsem s tím měl problémy několikrát ... |
||
mila Profil |
#7 · Zasláno: 3. 9. 2007, 21:36:15
SELECT * FROM catalog LEFT JOIN images ON catalog.img = images.cid WHERE catalog.id in (SELECT id from catalog LIMIT 0, 4) nebo SELECT * FROM (SELECT * from catalog LIMIT 0, 4) as catalog LEFT JOIN images ON catalog.img = images.cid |
||
Jakuje Profil |
#8 · Zasláno: 3. 9. 2007, 21:53:55
Díky. Až se k tomu dostanu, tak to zkusím. Myslím že jsem kdysi zkoušel něco s tím podvýběrem a házelo to nějakou chybu, ale jak říkám, uvídí se ...
|
||
Jakuje Profil |
#9 · Zasláno: 4. 9. 2007, 15:36:35
SELECT * FROM catalog LEFT JOIN images ON catalog.img = images.cid WHERE catalog.id in (SELECT id from catalog LIMIT 0, 4) - Vrací chybu: This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' nebo [pre]SELECT * FROM (SELECT * from catalog LIMIT 0, 4) as catalog LEFT JOIN images ON catalog.img = images.cid[pre] - Funguje. Nevím jak, ale ano. Moc díky. Konečně vím jak řešit stránkování v MySQL dotazu ... díky |
||
Časová prodleva: 18 let
|
0