• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bardziej optymalne rozwiązanie MYSQL/PHP.

Object Storage Arubacloud
–2 głosów
179 wizyt
pytanie zadane 22 grudnia 2016 w SQL, bazy danych przez Szymon Lisowiec Mądrala (7,150 p.)
Witam,

Mam dwie tabele, z których potrzebuję pobrać kilka rekordów, tak aby dla jednego rekordu z tabeli A przypadał jeden z B. Problem jest taki, że dla jednego rekordu z tabeli A przypada kilka z tabeli B, żaden JOIN nie pomaga, ani nie mogę użyć LIMIT dla JOINa.

Wpadłem na dwa pomysły:
1) Pobrać za pomocą JOINa zbyt dużą ilość rekordów i wywalić niepotrzebne przy pobieraniu ich w pętli PHP. Średnio będzie pobierać gdzieś 16 rekordów z tabeli A, a do każdego z nich do maksymalnie 5 rekordów z tabeli B.
2) Pobrać rekordy z tabeli A i podczas ich pobierania pobrać pasujący rekord z tabeli B.

Problematyka pierwszego - za duża ilość rekordów.
Problematyka drugiego - za duża ilość zapytań.

Która z opcji jest bardziej optymalna? Obstawiam pierwszą, ale nie wiem czy się mylę. A może jest jeszcze inne, lepsze rozwiązanie?
komentarz 22 grudnia 2016 przez Boshi VIP (100,240 p.)
druga opcja to tzw. lazy loading(wzorzec leniwego ładowania) wykorzystywana w orm-ach przykładowo.

swoją drogą podaj dwie tabele, dane i co chcesz osiągnąć, bo myślę, że samymi joinami idzie wszystko wyciągnąć tylko nie wiesz jak.
komentarz 22 grudnia 2016 przez Szymon Lisowiec Mądrala (7,150 p.)
edycja 23 grudnia 2016 przez Szymon Lisowiec

 Groups:

id name
1 abc
1 xyz

 Answers:

groupid status
1 1
1 0
2 1
2 0

i oczekuję:
1, abc, 1
2, xyz, 1

próby z joinami kończą się u mnie wynikiem:
1, abc, 1
1, abc, 0
2, xyz, 1
2, xyz, 0

komentarz 22 grudnia 2016 przez Boshi VIP (100,240 p.)
Możesz dać rzeczywiste nazwy, wraz z relacjami i kluczami obcymi, bo nic z tego nie idzie zrozumieć.
komentarz 22 grudnia 2016 przez Szymon Lisowiec Mądrala (7,150 p.)
Poprawiłem w poście wyżej.
komentarz 23 grudnia 2016 przez Boshi VIP (100,240 p.)
Albo nie umiesz czytać ze zrozumieniem, albo nie masz totalnie podstaw budowy baz danych..

dlaczego ci się id powtarza? co to jest groupid? klucz obcy? czego?  oczekujesz jakiś 1 abc 1.. ale co to za jedynki? jakie to są kolumny?

 

napisz, żę to w końcu raz a porządnie.

nazwy tabel

nazwy kolumn

klucze obce

klucze główne

albo daj screen bazy..
komentarz 23 grudnia 2016 przez Szymon Lisowiec Mądrala (7,150 p.)
Panu podziękujemy, może znajdzie się ktoś inny kto w przeciwieństwie do Ciebie umie czytać ze zrozumieniem. Btw. jaką widzisz różnicę między prawdziwymi nazwami kolumn i tabel, a przykładowymi? Ciekawość prowadzi do piekła :]
komentarz 23 grudnia 2016 przez Boshi VIP (100,240 p.)
A tym, że nie wiadomo co jest czym i co zamierzasz osiągnąć. Co to jest 2, xyz, 1 ? co to jest ta dwójka? który to dokładnie rekord, bo masz dwa, to samo z tymi jedynkami.. już nie wspominając o tym, że nie masz nawet AI założonego na id w grupach, nie potrafisz powiedzieć jakie dane cię interesują słownie...  "chcę wyciągnąć te odpowiedzi które.."

a ponadto odrzucasz pomoc i masz czelność edytować komentarz wedle moich uwag?

powodzenia, może komuś będzie się chciało rozszyfrowywać o co ci chodzi.

 

p.s ostatnio miałem takiego klienta, po 2h  wymiany email dot. projektu, podziękowałem mu i życzyłem powodzenia w szukaniu kogoś kto go zrozumie.

ps2... mało mnie obchodzą twoje dane, i tak to pewnie jakiś projekcik do sszkoły czy prywatny... ale jak nie potrafisz przedstawić problemu to nie oczekuj odpowiedzi.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 117 wizyt
pytanie zadane 8 lipca 2019 w PHP przez BlvckFox Gaduła (4,240 p.)
0 głosów
1 odpowiedź 119 wizyt
pytanie zadane 20 września 2019 w SQL, bazy danych przez BlvckFox Gaduła (4,240 p.)
0 głosów
0 odpowiedzi 95 wizyt
pytanie zadane 20 stycznia 2021 w SQL, bazy danych przez Piotr Jarema Użytkownik (970 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...