Portál AbcLinuxu, 12. května 2025 16:59

Dotaz: Sqlite3 & Python: jak zkombinovat data ze tri tabulek

29.6.2015 23:24 zdenek2008 | skóre: 26
Sqlite3 & Python: jak zkombinovat data ze tri tabulek
Přečteno: 670×
Odpovědět | Admin
Mam tri tabulky ze kterych bych potreboval zkombinovat data tak abych je mohl vypsat v ucelene forme. V prvni tabulce mam zapsana id urcitych zaznamu v tech ostatnich tabulkach:
hlavni_tabulka:

id_teto_tabulky
id_v_tabulce1
id_v_tabulce2
jine_id_v_tabulce2
polozka_teto_tabulky
dalsi_polozka_teto_tabulky
V pomocne tabulce1 mam pod prislusnym id nejakou polozku, kterou potrebuji dosadit do vysledku hledani.
tabulka1:

id
nejaka_polozka
V pomocne tabulce2 mam take pod prislusnym id nejakou polozku, kterou chci dosadit do vysledku hledani, ale z hlavni tabulky mi referuje do teto pomocne tabulky jeste jiny sloupec a to na jine id nez ten prvni, takze na kazdem radku vysledneho vypisu chci mit ve dvou sloupcich rozdilne polozky z te same pomocne tabulky.
tabulka2:

id
nejaka_polozka
Vysledek dotazu by mel vypadat takto:
pozadovany_vysledek:

id_teto_tabulky
id_v_tabulce1 + polozka_z_te_tabulky_odpovidajici_tomuto_id
id_v_tabulce2 + polozka_z_te_tabulky_odpovidajici_tomuto_id
jine_id_v_tabulce2 + polozka_z_te_tabulky_odpovidajici_tomuto_jinemu_id
polozka_teto_tabulky
dalsi_polozka_teto_tabulky
Idealne by se mel vysledek ziskat jedinym sql dotazem, asi JOIN nebo poddotazem, ale nejak jsem se v tom zamotal, nemeli byste nekdo nejaky tip co s tim? Predem diky.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (zdenek2008 (tazatel))
wamba avatar 30.6.2015 08:50 wamba | skóre: 38 | blog: wamba
Rozbalit Rozbalit vše Re: Sqlite3 & Python: jak zkombinovat data ze tri tabulek
Odpovědět | | Sbalit | Link | Blokovat | Admin
já bych udělal JOIN s tou tabulkou2 dvakrát
This would have been so hard to fix when you don't know that there is in fact an easy fix.
30.6.2015 14:13 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: Sqlite3 & Python: jak zkombinovat data ze tri tabulek
Diky wambo, uz to funguje.
30.6.2015 10:28 Marek
Rozbalit Rozbalit vše Re: Sqlite3 & Python: jak zkombinovat data ze tri tabulek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Neni uplne jasne (me vubec), podle ceho chcete vyhledavat. Na tom dost zavisi, jak se budete dotazovat database.

Take, pokud by to bylo mozne, byste mohl prilepit vzorek te sqlite db, aby se dalo vse overit. Ale to je spis nice to have.
Řešení 1× (zdenek2008 (tazatel))
30.6.2015 11:51 izidor
Rozbalit Rozbalit vše Re: Sqlite3 & Python: jak zkombinovat data ze tri tabulek
Odpovědět | | Sbalit | Link | Blokovat | Admin
select 
ht.id_teto_tabulky,
ht.id_v_tabulce1,
t1.nejaka_polozka,
ht.id_v_tabulce2,
t2a.nejaka_polozka,
ht.jine_id_v_tabulce2,
t2b.nejaka_polozka,
ht.polozka_teto_tabulky,
ht.dalsi_polozka_teto_tabulky
from
hlavni_tabulka ht,
tabulka1 t1,
tabulka2 t2a,
tabulka2 t2b
where
ht.id_v_tabulce1 = t1.id
and ht.id_v_tabulce2 = t2a.id
and ht.jine_id_v_tabulce2 = t2b.id

30.6.2015 14:11 zdenek2008 | skóre: 26
Rozbalit Rozbalit vše Re: Sqlite3 & Python: jak zkombinovat data ze tri tabulek
Diky moc izidore, tohle je presne ono, fungovalo to hned napoprve, stacilo jen nahradit nazvy v sql dotazu.

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.