Portál AbcLinuxu, 11. května 2025 01:59

Dotaz: Mysql join na tabulky LIKE '...

14.11.2010 01:14 houSer
Mysql join na tabulky LIKE '...
Přečteno: 470×
Odpovědět | Admin
ahoj. Mám x tabulek, které mají společný sloupec `klic` a jejich názvy začínají na tabulka_ a já bych je potřeboval všechny spojit a vypsat data. Neexistuje nějaké způsob jak je automaticky propojit když vím že začínají nějakým názvem? Nebo musím psát Xkrát join pro každou tabulku zvlášť?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

okbob avatar 14.11.2010 07:28 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Musite join vypsat Xkrat. Nic takoveho, co chcete neexistuje.
14.11.2010 09:31 FooBar
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
Ja si jen dovolim jeste poznamku, ze pokud neco takoveho chcete, tak to typicky ukazuje na dost hroznej navrh databaze.

(A slo by to, pres proceduralni rozsireni SQL, ale... rozhodne to nepotesi oko kohokoliv kdo to pak bude cist)
14.11.2010 12:27 Pavel Stěhule
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
Když jsem psal odpověď, tak jsem napřed na dynamické SQL myslel, nicméně vlastně stejně vygenerujete SQL obsahující opakující se SELECTy - a fakticky je jedno, jak je prováděný SQL do db vytvořený, jestli ručně nebo v uložené proceduře nebo v aplikaci. Todíž moje odpověď je taková, že v SQL nic takového možné není.
14.11.2010 12:59 FooBar
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
Hmm, to je velice dobra poznamka, dik za korekci.
15.11.2010 10:07 jeleniste | skóre: 13 | blog: Prokustovo lože
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jo, jde to, pokud maj stejnou strukturu, tak jde udělat union all, pokud nemaj tak to jde ošidit

select * from
(
select klic, neco, neco1, neco2,NULL neco3,......., NULL neco_n from tbl1
union all
select klic, NULL neco, NULL neco1, NULL neco2, neco3,......., NULL neco_n from tbl2
union all
.
.
.
.
union all
select klic, NULL neco, NULL neco1, NULL neco2, NULL neco3,......., neco_n from tbl_n
) tblX
join tblII
on tblX.klic = tblII.klic
Na jednorázovej výpis dat je to dobrý ažaž, pokud je člověk ochotnej si chvilku počkat.
Nejsem blbý, jen se hloupě ptám
okbob avatar 15.11.2010 11:10 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
ten vnější select je tam naprosto zbytečný - a pro některé db (např. MySQL) může způsobit výkonostní problémy. Nehledě na to, že to neřeší původní dotaz SELECT * FROM tab*

15.11.2010 13:17 mfo
Rozbalit Rozbalit vše Re: Mysql join na tabulky LIKE '...
Odpovědět | | Sbalit | Link | Blokovat | Admin
a mozno sa mylim ale co tak vytvorit view nad tymi tabulkami.. a potom selektovat z jedneho view? neviem ci tie tabulky su rovnake bez zmeny alebo su dinamicke. A mozno sa mylim.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.