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

  • sztanozs

    veterán

    válasz Taci #20887 üzenetére

    Ezt simán meg lehet csinálni SQL alapon mindenféle plusz kalkuláció nélkül is. Kellenek a következők:
    - KATEGORIA tábla (ID, MEGNEVEZES)
    - KULCSSZO tábla (ID, KULCS)
    - M:N kötőtábla a Kulcsok és Kategóriák között (KUKA - KAT_ID, KULCS_ID)
    - REKORDOK tábla (ID, ... mindenféle mezők ... )
    - M:N kötőtábla a rekordok és kulcsok között (REKU - REKORD_ID, KULCS_ID)
    Ezekkel simán SQL alapon lehet kimutatni a kategóriákat, mindenféle külön szenvedés nélkül:
    SELECT
    R.*,
    GROUP_CONCAT(KAT.MEGNEVEZES)
    FROM REKORDOK AS R
    JOIN REKU ON R.ID=REKU.REKORD_ID
    JOIN KUKA ON REKU.KULCS_ID = KUKA.KULCS_ID
    JOIN KATEGORIA AS KAT ON KUKA.KAT_ID = KAT.ID

    Kb fejből, de lehet, hogy kell egy nested select:

    SELECT
    R.*
    RK.KATEGORIAK
    FROM REKORDOK JOIN
    (SELECT
    R.ID,
    GROUP_CONCAT(KAT.MEGNEVEZES) AS KATEGORIAK
    FROM REKORDOK AS R
    JOIN REKU ON R.ID=REKU.REKORD_ID
    JOIN KUKA ON REKU.KULCS_ID = KUKA.KULCS_ID
    JOIN KATEGORIA AS KAT ON KUKA.KAT_ID = KAT.ID
    GROUP BY R.ID) AS RKAT ON R.ID = RKAT.ID

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

Hirdetés