[MySQL] problem z zapytaniem

0

cześć

mamy taką sobie tabelę obiektów (obiekty mają swoje typy i podtypy)
tabela_1:

type subtype count user_id name
1 1 4 1 x
1 2 3 1 y
1 3 1 1 z

tabela warunków do spełnienia
tabela_2:
type1 subtype1 type2 subtype2 c_count
1 2 1 1 1
1 3 1 1 2
1 3 1 2 1

chodzi o to, że podaję 2 zmienne, np: what_type=1, what_subtype=2

z tabela_2 wyciągam pierwszy wiersz bo type1 = what_type, and subtype1 =what_subtype

dostaję w tym wierszu type2 = 1 i subtype2 = 1 czyli w skrócie

obiekt o type1=1 i subtype1=2 wymaga obiektu o type2=1 i subtype2=1 w ilości c_count
sprawdzam w tabela_1 czy w wierszu type= type2 i subtype = subtype2 wartość count >= c_count jeżeli tak to 1, nie to 0

szczerze mówiąc nie mam pomysłu jak takie zapytanie stworzyć

znając wartość type i subtype chcę sprawdzić jakie są wymagane obiekty dla danego typu, sprawdzić czy ich stan ilościowy jest zgodny z wymaganiami i zwrócić czy mogę sprzedać ten obiekt czy nie mogę, czyli po prostu zwraca 1 lub 0

help

0

Pierwsza część -= tak:
WHERE @what_type IN (type1, type2) AND @what_subtype IN (subtype1, subtype2)
Dalej nie kumam.

pozdrawiaMM

0
select 
  case when count(*) > 0 then 1 else 0
from
  tabela_1 t1,
  tabela_2 t2
where
  t2.type1 = :typ 
  and t2.subtype1 = :subtyp
  and t1.type = t2.type2
  and t1.subtype = t2.subtype2
  and t1.count >= t2.c_count

coś takiego, nie wiem czy w ,ysqlu jest case i czy tak wygląda

0

kurcze blade
robiłem dobrze tylko namieszałem w WHERE [rotfl]
dzięki za pomoc

0

Nie chce się zbytnio czepiac ale strasznie brzydkie to zapytanie :(
Tak nie mozna?

SELECT 
  case when count(*) > 0 then 1 else 0
FROM
  tabela_1 t1 
  join tabela_2 t2 on t1.type = t2.type2 and t1.subtype = t2.subtype2 and t1.count >= t2.c_count
WHERE
  t2.type1 = :typ 
  AND t2.subtype1 = :subtyp

Wydaje mi się, że plan tego zapytania będzie troche ładniejszy (teoretycznie powinien, nie jestem specjalistą od MySQL).

1 użytkowników online, w tym zalogowanych: 0, gości: 1