Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 29.07.2014 Ostrzeżenie: (0%)
|
Witam. By wyjaśnić problem przedstawię wymyśloną sytuację jako przykład.
Mam np. tabelę "rtv" z kolumnami ID, nazwa, powiązanie z wierszami: Kod ID nazwa powiazanie -------------------------------------- 1 Komputer PC NULL 2 Wieża stereo NULL 3 Smartphone NULL 4 Karta graficzna 1 5 Słuchawka bluetooth 3 6 Telewizor NULL 7 Dysk twardy 1 8 Kabel SATA do dysku 7 I teraz chcę sprawdzić sprzęty powiązane z ID 1 czyli z "Komputer PC". W takim wypadku zrobiłbym zapytanie
To zwróciło by mi: Kod 4 Karta graficzna 1 7 Dysk twardy 1 Ja jednak chciałbym sprawdzić poziom niżej, a więc by zwróciło by mi również sprzęty powiązane z tymi powiązanymi, czyli "Kabel SATA" który jest powiązany z "Dysk Twardy" który jest powiązany z wyszukiwanym "Komputer PC". Wystarczy mi tylko ten jeden "poziom" niżej, nie chcę szukać powiązań w nieskończoność. Dla uproszczenia powiązanie zawiera tylko jeden numer, więc słuchawki nie mogą np. należeć do Smartphona i Komputera jednocześnie. Powinno zwrócić: Kod 4 Karta graficzna 1 7 Dysk twardy 1 8 Kabel SATA do dysku 7 Da się to zrobić jakoś sensownie na jednym zapytaniu? Myślałem aby pobrać pierwsze powiązania tym zapytaniem które podałem, a potem w pętlę PHP dać te same zapytania dla tych powiązanych. To jednak się chyba nie sprawdzi bo po pierwsze zwiększy to mocno liczbę zapytań, a co ważniejsze nie będę mógł zrobić paginacji itd. Jakieś rady? Ten post edytował nyfko 8.05.2016, 13:20:57 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 3 034 Pomógł: 366 Dołączył: 24.05.2012 Ostrzeżenie: (0%)
|
no jeśli masz tak zbudowaną tabele jak przedstawiłeś to wydałeś pieniądze w błoto na ten skrypt, bo to jest po pierwsze źle zaprojektowane, co prowadzi do tego iż nie mozliwe jest właściwe uzyskanie tego co powinieneś uzyskać, czyli wykonanie takiego zapytania jakie chciałeś.
możesz zrobić z tym to co sugerował CuteOne |
|
|
|
nyfko [MySQL] Pobranie powiązanych rekordów i ich powiązanych 8.05.2016, 13:15:09
com zrobić z tego relacyjna bazę danych a nie takiego ... 8.05.2016, 13:20:42 
nyfko Cytat(com @ 8.05.2016, 13:20:42 ) zro... 8.05.2016, 13:25:21
com no ale nie uzyskasz odpowiedzi jak przedstawiasz z... 8.05.2016, 13:30:42 
nyfko Cytat(com @ 8.05.2016, 14:30:42 ) no ... 8.05.2016, 13:45:12
CuteOne Dać się da ale wymaga, to zmiany struktury bazy d... 8.05.2016, 13:35:04
nyfko Ok to zapytam inaczej.
Czy da się zrobić tak by w... 8.05.2016, 13:56:15
com owszem da sie zrobić podzapytanie ale czasem lepie... 8.05.2016, 14:00:33 ![]() ![]() |
|
Aktualny czas: 29.12.2025 - 09:14 |