Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
VelkyBubak
Člen
Avatar
VelkyBubak:3.7.2016 19:46

Ahoj. Neví někdo, jak má pracovat union?

$selectA = "(select anime_18, odpocet_archiv.*, anime_nazevjap as nazevjap, anime_url as url, anime_typ as typ, anime_epizody as epizody, anime_slozka as slozka from odpocet_archiv inner join anime on anime.id_anime=odpocet_archiv.id_kategorie where odpocet_schvaleno=1 and (odpocet_datum like '2016-07-03%') and odpocet_kategorie='Anime' order by odpocet_datum desc, anime_nazevjap) union (select anime_18, odpocet.*, anime_nazevjap as nazevjap, anime_url as url, anime_typ as typ, anime_epizody as epizody, anime_slozka as slozka from odpocet inner join anime on anime.id_anime=odpocet.id_kategorie where odpocet_schvaleno=1 and (odpocet_datum like '2016-07-03%' and odpocet_datum<'2016-07-03 19:13:48%' ) and odpocet_kategorie='Anime' order by odpocet_datum desc, anime_nazevjap) order by nazevjap";

$selectB = "(select dorama_18, odpocet_archiv.*, dorama_nazevjap as nazevjap, dorama_url as url, dorama_typ as typ, dorama_epizody as epizody, dorama_slozka as slozka from odpocet_archiv inner join dorama on dorama.id_dorama=odpocet_archiv.id_kategorie where odpocet_schvaleno=1 and (odpocet_datum like '2016-07-03%') and odpocet_kategorie='dorama' order by odpocet_datum desc, dorama_nazevjap) union (select dorama_18, odpocet.*, dorama_nazevjap as nazevjap, dorama_url as url, dorama_typ as typ, dorama_epizody as epizody, dorama_slozka as slozka from odpocet inner join dorama on dorama.id_dorama=odpocet.id_kategorie where odpocet_schvaleno=1 and (odpocet_datum like '2016-07-03%' and odpocet_datum<'2016-07-03 19:13:48%' ) and odpocet_kategorie='dorama' order by odpocet_datum desc, dorama_nazevjap)";

funkční je:

$select_union = "$selectA union $selectB order by nazevjap";

(10 výsledků)
a:

$select_union = "$selectB union $selectA order by nazevjap";

(15 výsledků)

když jsem zkusil

$select_union = "($selectA union $selectB) order by nazevjap";

tak už to nefungovalo - phpadmin error:

This type of clause was previosly parsed. (poblíž order by)
Unrecognized statement type. (poblíž order by)

zajímá mne co vlastně dělám špatně, proč se to chová jak jsem popsal a jak se příkaz union používá

 
Odpovědět
3.7.2016 19:46
Avatar
VelkyBubak
Člen
Avatar
VelkyBubak:3.7.2016 20:08

ech $selectA je bez order by nazevjap (na konci)

 
Nahoru Odpovědět
3.7.2016 20:08
Avatar
mixxy
Člen
Avatar
mixxy:4.7.2016 13:51

Ahoj, union je jednoduche spojeni dvou selektu. U unionu je obvykle predpoklad, ze data spojena pres union by mela mit stejny pocet sloupcu a datove typy.

Nahoru Odpovědět
4.7.2016 13:51
Neni dulezite mnoho vedet a znat. Dulezite je vedet, co je treba.
Avatar
VelkyBubak
Člen
Avatar
Odpovídá na mixxy
VelkyBubak:5.7.2016 3:40

Ve skutečnosti nemusí být pouze dva, ale s ostatním máš pravdu.
Já nakonec zjistil že mám problém se syntaxí respektive se nelíbily závorky. V podstatě to bez závorek funguje asi nejlépe. Navíc order by má asi smysl jen na úplném konci.

 
Nahoru Odpovědět
5.7.2016 3:40
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.