Keresés

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

  • sztanozs
    veterán

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    where
    ml.SUBSCRIPTION_UID is null
    <-- ez alapján kellene excludolnia?
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    <-- itt egyenlőségjel helyett nem IN kellene?
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

  • velizare
    nagyúr

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    ha nem működik egy join írd át nested selectre, és nézd meg úgy.

    @Ispy: tipikusan nehezebben átlátható, főleg az egzotikus fajta. én leszoktam róla, az interpreter/optimizer úgyis szétszedi, amire neki tetszik. a fenti statementben is van 3 join, úgy hiányzik a negyedik, mint púp a hátamra.

  • velizare
    nagyúr

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    meh, dupla.

    plz töröljük.

  • Ispy
    nagyúr

    Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    Nem értek a TimesTenhez, szóval csak belemakogok, de ez a rész

    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    miért nem join-ként van definiálva?

    Illetve itt a like-hoz nem kell %-jel vagy valami? Alapból benne keres? Vagy itt csak azokra vagy kiváncsi, ahol guestPIN, akkor meg minek a like, miért nem simán =?

  • Sziasztok!

    TimesTen DB-ben kuzdok egy queryvel ami valamiert egy fele parameternel forditva fut le, igy a left outer join nem excludal adatokat, hanem pont az ellenkezo oldalt mutatja meg(amit ki kene vonni)

    Rakukkantana valaki?

    select count(s.id)
    from subscription s
    join SUBSCRIPTION_RESOLVE_KEY srk on s."UID" = srk.SUBSCRIPTION_UID
    join account a on s.OWNING_ACCOUNT_UID = a."UID"
    left outer join waitRoomEnabled ml on s."UID" = ml.SUBSCRIPTION_UID
    where
    ml.SUBSCRIPTION_UID is null
    and
    srk.DOMAIN_RESOLVE_KEY_UID = (
    select drk."UID" from DOMAIN_RESOLVE_KEY drk
    where drk.ID like 'guestPIN');

    Sry előre ha fura a kérdés, de left OUTER join és az exclude hogyan említhető egyszerre? Amikor utoljára ORA-ztam, az outer join pont az ellentéte volt, teljes megőrzés a bal táblára.

    Azt sem értem, hogy miért kell a vonatkozó mezőn ott a null filter, de emögött biztos van szándék.

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