Autor | Zpráva | ||
---|---|---|---|
BunnyBugs Profil * |
#1 · Zasláno: 17. 4. 2014, 14:30:14
Zdravím, mám jeden dotaz.
Lítám tady po diskuzi už druhý den, ale žádná varianta ani pochopení nějak nepřišlo, mohu tedy poprosit o radu? Mám tabulku 1 a tabulku 2, obě dvě mají pole (id, datum, nazev, prijem, vydej, atd...) Teď bych potřeboval udělat výpis všech řádků z obou tabulek, které obsahují stejný parametr z pole název ... prostě mi zatím nic nefungovalo :( Když to vypíšu dvouma dotazama, tak to funguje, ale zobrazí se mi nejdřív záznamy z tabulky 1 a pak z tabulky 2, ale já bych právě potřeboval, aby se to promíchalo do sebe, resp. seřadilo dle datumů bez ohledu na to, z které tabulky to je. Za každou radu předem děkuji. |
||
Tori Profil |
#2 · Zasláno: 17. 4. 2014, 14:46:13
(SELECT sloupce FROM t1 WHERE sloupec = 'neco') UNION (SELECT sloupce FROM t2 WHERE sloupec = 'neco') ORDER BY datum |
||
BunnyBugs Profil * |
#3 · Zasláno: 17. 4. 2014, 14:57:43
Juuu, jak prosté, funguje :))) a já se to tady snažil všelijak spojovat a kombinovat, tohle mě nějak nenapadlo :(
Děkuji moc za rychlou odpověď :) |
||
Časová prodleva: 10 dní
|
|||
BunnyBugs Profil * |
#4 · Zasláno: 27. 4. 2014, 21:34:52
Ještě malá prosbička, na součet sloupce to nějak nefunguje, nebo to má dotaz vypadat jinak?
Když použiji tento dotaz: (SELECT SUM(`prijem`) AS 'celkem' FROM `t1`) UNION (SELECT SUM(`prijem`) AS 'celkem' FROM `t2`) UNION (SELECT SUM(`prijem`) AS 'celkem' FROM `t3`) tak mi to vypíše součet pouze s t1. Co je tedy špatně?, nebo to na funkci SUM() musí vypadat jinak? |
||
juriad Profil |
#5 · Zasláno: 27. 4. 2014, 21:48:56
Ty bys především nikdy neměl chtít slučovat výsledky z několika tabulek.
Jak se líší t1 od t2 a t3? Jsou v nich trochu jiná data. Proč nejsou všechny v jedné tabulce? Protože název tabulky souvisí s tím, jaká data obsahuje? Raději vytvoř jedinou tabulku t s jedním sloupce navíc, který bude rozlišovat jednotlivé typy.
K tvému dotazu (s chybným schématem): O jaký dotaz se snažíš, co má vrátit? Součet ze všech tabulek dohromady? |
||
BunnyBugs Profil * |
#6 · Zasláno: 27. 4. 2014, 22:06:07
No, nejde jen o názvy tabulek, ale každá tabulka má jiné sloupce, ale sloupce příjem a výdej mají všechny tři.
Nejde mi slučování tabulek, ale pouze jen o výpis celkové částky ze všech třech. A ano, vím, že je to asi chybný dotaz, ale nevím, jak to sečíst, to je to, o co mi jde. |
||
juriad Profil |
#7 · Zasláno: 27. 4. 2014, 22:25:08
Ve vnitřním dotazu si sloučíš příjmy ze všech tabulek. A protože vnitřní dotaz musí být pojmenovaný, bude třeba
t . A pak se k tomu chováš, jako by to byla obyčejná tabulka.
SELECT SUM(prijem) AS celkem FROM ((SELECT prijem FROM t1) UNION (SELECT prijem FROM t2) UNION (SELECT prijem FROM t3)) t |
||
BunnyBugs Profil * |
#8 · Zasláno: 28. 4. 2014, 00:19:38
Jojo, to je přesně ono :) ... mockrát díky :)
|
||
Kajman Profil |
#9 · Zasláno: 28. 4. 2014, 07:44:11
Pozor, musí tam být union all, jinak to může vynechat příjmy z t2 a t3, které jsou stejné, jako nějaký předešlý.
|
||
BunnyBugs Profil * |
#10 · Zasláno: 29. 4. 2014, 17:30:21
Kajman:
Tak jsem si dělal zpětnou kontrolu nápovědy od juriad a pořád mi to nevycházelo. Po přidání ALL za UNION je to v naprostém pořádku, takže díky moc ... jsem ten dotaz předělával snad milionkrát, abych našel chybu a pořád nic, ale takhle už je to v pohodě :) |
||
Časová prodleva: 10 let
|
0