Wpis z mikrobloga

Mircy, mam problem.

Sprawa dla uproszczenia wygląda tak: mam tabelę z trzema polami (id, typ i data). Dla każdego rekordu potrzebuję id poprzedniego i kolejnego rekordu z tym samym typem (patrząc po datach, bo przy sortowaniu po id daty nie muszą być ułożone chronologicznie). Krótko mówiąc, mam to co po lewej, chcę selectem wyciągnąć to co po prawej.

I tu się pojawia pytanie: da się to jakoś zrobić jedną kwerendą? Domyślam się że będzie potrzebny jakiś self join, ale co dalej?

#programowanie #sql #mysql
croppz - Mircy, mam problem. 

Sprawa dla uproszczenia wygląda tak: mam tabelę z tr...

źródło: comment_SSIFgbKkgUDZjtgTgmdQdTYsBrEGHTkI.jpg

Pobierz
  • 6
@plushy: ostatecznie zrobiłem to jeszcze inaczej, bo mysql 5.x i aktualizacja nie wchodzi w grę (czyli funkcje lag i lead niedostępne). A tak czysto z ciekawości, w jaki sposób można to zrobić samymi joinami?
@croppz średnio chce mi się na komórce pisać ale dwa left joiny, to jet groupwise maximum z dodatkowym warunkiem or na drugim on. Spróbuj tak dla rozrywki.

P.S. prawie wszystko można zrobić left joinami