Wpis z mikrobloga

Potrzebuję pomocy z ogarnięciem querry w MySql. Jestem początkująca i uczę się, więc doszłam do ściany :/. Poniżej kod:

SELECT
bla_log_visit.custom_dimension_1,
bla_log_visit.custom_dimension_2,
bla_log_visit.location_country,
bla_log_visit.visit_first_action_time AS first_user_occurrence,
CASE WHEN EXISTS (
SELECT 1
FROM bla_log_link_visit_action
WHERE bla_log_link_visit_action.idvisit = bla_log_visit.idvisit
AND (bla_log_link_visit_action.idpageview REGEXP "101|113|152|202"
OR bla_log_link_visit_action.idaction_name REGEXP "101|113|152|202"
)
) THEN "yes"
ELSE "no"
END AS has_match
FROM bla_log_visit
JOIN (
SELECT MIN(idvisit) as first_visit_id, custom_dimension_1
FROM bla_log_visit
GROUP BY custom_dimension_1
) AS first_visit_id ON bla_log_visit.idvisit = bla_log_visit.idvisit
WHERE bla_log_visit.custom_dimension_1 IS NOT NULL
ORDER BY has_match DESC;

Querry zwraca mi listę customdimension1, 2 i resztę. Sprawdza czy wartości 101|113|152|202 występują w drugiej tabeli i zwraca "yes" albo "no". I to jest super, ALE chcę mieć listę unikalnych customdimensions1 etc z tabeli blalogvisit + informację o tym, czy w tabeli blaloglinkvisitaction w wizytach powiązanych z tymi customdimensions etc są we wskazanych (w CASE) szukane wartości. We wszystkich wizytach.

Czyli jeśli mamy customdimension1 np. Jan Kowalski, który wykonał wizyty o ID 1, 2, 3, 4, 5, to informacja zwrotna powinna wyglądać tak:

Jan Kowalski - cośtam - cośtam - visitfirstactiontime ALE z wizyty o ID 1 - > "yes" o ile wystąpiła wartość szukana ALE w wizytach 1, 2, 3, 4, itd.
Janusz Pawlak - i tak dalej

A nie:

Jan Kowalski - cośtam - cośtam - visit
firstactiontime z wizyty o ID 1 - > "yes" o ile wystąpiła wartość szukana w wizycie 1
Jan Kowalski - cośtam - cośtam - visitfirstaction_time z wizyty o ID 2 - > "yes" o ile wystąpiła wartość szukana w wizycie 2

Mam nadzieję, że to jest zrozumiałe :D

#mysql #programujzwykopem #programowanie #naukaprogramowania
  • 6
@mala_rybka: chodzi o całość. Nie ułatwiasz sprawy temu kto to będzie czytał ;) a pamiętaj nie piszesz tego dla siebie bo ty wiesz o co chodzi w tym problemie. Powiem ci jako feedback że mi się zaczęło odechciewać po tym jak zobaczyłem zaciemnione nazwy typu bla_log_link_visit_action.

Zrób sobie eksperyment.
Zapomnij o tym wpisie na tyle długo żeby zapomnieć o co w nim chodzi. Po tym czasie wróć i zobacz jak
@mrq: rozumiem, dzięki za wyjaśnienia. Masz rację - uczę się i popłynęłam na głębokie wody więc rzeczywiście ciężko mi wyjaśnić o co mi chodzi. Przemyślę to jeszcze raz i spróbuję opisać tak, żeby miało ręce i nogi.