Autor | Zpráva | ||
---|---|---|---|
Jiří Šťastný Profil |
Ahoj všem, chtěl bych se jen zeptat (poprosit o radu), jak postupovat, když chci načíst data ze dvou tabulek pomocí SQL tak, aby se mi vždy načetli 3 záznami z jedné tabulky a čtvrtý záznam z druhé, takto stále dokola. Poradí s tím někdo?
|
||
Kajman Profil |
Máte už verzi s podporou window funkcí?
|
||
Jiří Šťastný Profil |
#3 · Zasláno: 15. 8. 2018, 13:03:37
To popravdě nevím, ale dost o tom pochybuji. Jedná se o standardní MySQL na veřejném webhostingu (WEDOS).
|
||
Kajman Profil |
#4 · Zasláno: 15. 8. 2018, 13:13:56
Svoji verzi databáze zjistíte sql příkazem
select version() Pokud funguje dotaz select row_number() over() from dual Ve starších verzích si to raději poskládejte z dvou výsledků až v php. |
||
Jiří Šťastný Profil |
#5 · Zasláno: 15. 8. 2018, 13:21:03
Na dotaz
select version() se mi zobrazí jen číslo verze a to je: 5.6.10.
Při tom druhém dotazu dostávám chybovou hlášku na syntaxi. |
||
Jiří Šťastný Profil |
Chtěl bych ještě dodat, že mezi těmi dvěma tabulkami není žádný vztah. Obě mají jen sloupeček date_lastedit podle kterého řadím ty záznami.
Tak se mi kýženého výsledku podařilo dosáhnout pomocí příkazu UNION. :) |
||
Kajman Profil |
#7 · Zasláno: 15. 8. 2018, 15:41:58
A jak jste vyřešil, že se střídají vždy 3 řádky s jedním?
|
||
Jiří Šťastný Profil |
#8 · Zasláno: 15. 8. 2018, 15:48:20
Popravdě ještě nevyřešil, musel jsem odejít od počítače. Říkal jsem si, že to snad půjde limitováním. Řazení nebylo problém, protože obě tabulky mají stejný sloupeček, podle kterého se to má řadit (datum poslední úpravy). Ale když se na to teď ptáte, tak si říkám, že to asi tak jednoduché nebude.
|
||
Kajman Profil |
#9 · Zasláno: 15. 8. 2018, 16:00:59
S row_number by to jednoduché bylo. Takto bych si udělal v php dva dotazy a z nich postupně bral řádky. Něco jako
$citac_prvni_tabulky=0; while($tab1_radek=vemjedenradek($result1)) { zobraz($tab1_radek); $citac_prvni_tabulky++; if($citac_prvni_tabulky%3===0 && $tab2_radek=vemjedenradek($result2)) { zobraz($tab2_radek); } } while($tab2_radek=vemjedenradek($result2)) { zobraz($tab2_radek); } |
||
Jiří Šťastný Profil |
#10 · Zasláno: 15. 8. 2018, 16:42:39
Děkuji za pomoc. Já navíc využívám Nette a snažím se držet Nette Database Explorer, nicméně je mi jasné, že takto pokročilé věci bych v tom dělal jen těžko. Zaměřím se asi na pozdější seřazení v PHP.
|
||
Časová prodleva: 6 let
|
0