Hirdetés

Új hozzászólás Aktív témák

  • Lortech
    addikt

    Sziasztok !
    Nemrég óta vagyok regisztrált, és kérdezni se szoktam, ott a google :)
    Az sql-ben eddig mindent meg tudtam oldani. Tehát a táblák összerakásával tisztában vagyok, hogy célszerű.

    De most megakadtam, remélem tudtok segíteni.
    A lényeg a kövektező:
    van két sql táblám, lényegtelen, hogy miben.
    Az első tábla lehet nem szükséges, de ebben tárolom az adatokat,
    a második meg ezt fogja össze egy másik logikai szinten.

    Az egyik tábla a következőképpen néz ki lényegileg:
    2 oszlop, egyikben adat (az adat is mindíg különbözik) másikban egy számláló

    a másikban meg ugyancsak két oszlop
    az első oszlop, egy a sorra jellemző azonosító, mely ismétlődhet (sőt, a lényege az ismétlődés)
    a második oszlop meg az első tábla számlálójának az idegen kulcsa.

    pl.:

    1. tábla
    sorszám - adat
    1 - a
    2 - b
    3 - c
    4 - d

    2. tábla:
    azonosító (nem egyedi) - idegen kulcs (1.tábla sorszámára)
    10 - 1
    10 - 2
    10 - 3
    11 - 2
    11 - 3
    12 - 1
    12 - 2
    12 - 4
    13 - 1
    13 - 3

    Ezek után a problémám ott kezdődik, hogy szeretnék egy szűrést arra, hogy melyek azok az azonosítók 2. táblából melyek tartalmaznak bizonyos számokat az idegen kulcs oszlopban. (Ha ez megvan, akkor azonnal össze tudom kötni az első táblában lévő adatokkal)
    Tehát pl.: mely azonosítók azok, amik tartalmazzák, a 2. táblából az 1-es és a 2-es idegen kulcsot. (többet tartalmazhat, csak kevesebbet nem)
    Erre ugye a jó válasz, az hogy kilistázza a 10-es azonosító mind3 sorát, hisz tartalmazza az 1-est, és a 2-est is, és még többet is, és kilistázza a 12-es azonosító mind2 sorát.

    azaz ezt kéne kapnom:
    10 --- 1
    10 --- 2
    10 --- 3
    12 --- 1
    12 --- 2

    De itt úgy látszik megállt a tudásom.

    A válaszokat előre is köszönöm

    üdv.: Zsolti

    [ Szerkesztve ]

    select * from masodik where azon in (select d.a from (select count(*) c, azon a from masodik where ik in (1,2) group by azon) d where d.c >= 2)
    ?
    Viszont a 12 -höz három sor tartozik, nem kettő, vagy valami nem tiszta. Kéne lennie jobbnak, de most nem jut eszembe. Mindenesetre általánosan elmondhatom eddigi tapasztalataim alapján, hogyha ilyen csúnya lekérdezést kell írni, akkor általában a séma nem megfelelő.

Új hozzászólás Aktív témák