Autor Zpráva
Krepala
Profil *
Ahoj. Mám dvě tabulky.

- Každý záznam v tabulce1 se váže k nějaké položce (zase jiná tabulka, ale k problému se neváže) a každá položka těch záznamů může mít neomezeně.
- Pro každý záznam v tabulce1 existuje X záznamů v tabulce2.

A nyní, pokud mám ID položky, tak dostanu řádky z tabulky1 a pro každý z nich dostanu ještě řádky z tabulky2. Jakým SQL dotazem lze získat ID řádků z tabulky2, které jsou úplně u všech záznamů z tabulky1, když mám na začátku ID položky?

Struktura tabulek pro názornost:

Tabulka1: id | id_polozky | name
Tabulka2: id | id_tabulka1 | url

Zkoušel jsem přes join, ale nikdy to nebyla moje parketa a k výsledku jsem se nedobral.
Díky.
Kajman
Profil
Možná něco takového:
SELECT propojenych.id
FROM   (
              SELECT Count(*) polozek
              FROM   tabulka1
              WHERE
              from   id_polozky=42) vsech
JOIN
       (
                SELECT   t2.id,
                         count(DISTINCT t2.id_tabulka1) polozek
                FROM     tabulka1 t1
                JOIN     tabulka2 t2
                ON       t1.id=t2.id_tabulka1
                WHERE    t1.id_polozky=42
                GROUP BY t2.id) propojenych
ON     vsech.polozek=propojenych.polozek 
Krepala
Profil *
Děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: