| | |
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 |
neviem spravne napisat sql poziadavku. Mam 5 tabuliek innoDB s rovnakou strukturou a potrebujem vytiahnut zo vsetkych naraz riadky (WHERE aktual IS NOT NULL)+(ORDER BY date ASC)
Viete poradit ako nato?
|
|
Registrovaný: 22.01.08 Prihlásený: 19.04.15 Príspevky: 492 Témy: 135 Bydlisko: Bratislava ... |
to si myslel tak, že by si to chcel dať do jedného dotazu všetko, alebo ako?
lebo základ toho čo ty chceš by mohol vyzerať takto:
Kód: mysql_query("Select * from tab1 WHERE aktual IS NOT NULL order by date ASC");
to ti vytiahne čo potrebuješ s tabulky tab1, a takto by si mohol dať 5 dotazov a máš čo potrebuješ, teda ak si to myslel takto. Lebo si nenapísal, či to chceš narvať do jedneho dotazu alebo to takto rozdeliť.
|
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 |
Citácia: a potrebujem vytiahnut zo vsetkych naraz riadky...
potrebujem aby sa mi podla datumu zoradili vysledky zo vsetkych tabuliek.
mohol by som zoradit polia vsetkych vystupov ale to mi pride ako zbytocna hlupost.Chcem to ziskat sql dotazom len neviem ci to mam robit cez rollback alebo daky druh JOIN .
staci ponavigovat trochu
|
|
Registrovaný: 22.01.08 Prihlásený: 19.04.15 Príspevky: 492 Témy: 135 Bydlisko: Bratislava ... |
v tom prípade by si možno mal skúsiť LEFT JOIN, to máš takto:
Kód: mysql_query("SELECT * From tab1 LEFT JOIN tab2 ON tab1.id = tab2.id");
musíš porovnať id z tab1 ktore je viazane na id z tab2...ja som tento príkaz vlastne ešte nikdy nepotreboval, takže s toho čo som vyčítal niečo na tento štýl.
|
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 |
hej to by slo keby som mal v jednej tabulke ulozene tie indexi 5tabuliek a data by som mal v druhej ale ako som napisal, mam tabulky s rovnakou strukturou estektomu so stlpcom autoincrement.
Keby sa nasiel niekto kto to vie vyriesit bol by som povdacny.Zrejme skopyrovat strukturu tabulky + pridat jeden stlpec z povodnym nazvom tabulky a tam vtesntat vsetky riadky obsahujuce aktual IS NOT NULL zo vsetkych vybranych tabuliek
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
Kód: SELECT * FROM ( SELECT * FROM tbl1 UNION SELECT * FROM tbl2 ) AS res WHERE aktual IS NOT NULL ORDER BY date DESC
zrejme to pojde aj bez toho vnoreneho selectu, teda vonkajsi select odstranis a nechas len tie, ktore su spojene cez union...
Naposledy upravil stenley dňa 18.01.2010 19:02, celkovo upravené 1
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 | |
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
skús si porovnať výkon UNION a UNION ALL. Možno budeš prekvapený.
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 |
dakujem UNION staci s duplicitou nemam problemy
este ma zaujma da sa zistit pri takomto vystupe z ktorej tabulky povodne pochadza riadok?
len tak informacne sa pytam
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
mozes si napr. pri kazdom selecte vratit aj nazov tabulky:
Kód: SELECT *, 'tbl1' AS tblName FROM tbl1
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 |
pilná lama glama píše: dakujem UNION staci s duplicitou nemam problemy este ma zaujma da sa zistit pri takomto vystupe z ktorej tabulky povodne pochadza riadok? len tak informacne sa pytam
Ale výkon si porovnaj, mne sa stalo, že UNION ALL bolo 5x rýchlejšie ako UNION
|
|
Registrovaný: 30.04.09 Prihlásený: 11.02.10 Príspevky: 723 Témy: 81 |
mam tam malo zaznamov ale rychlost medzi 100-400%
union all je naozaj podstatne rychlejsi
|
|
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|