Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] Zapytanie
potreb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Witam. Mam dwie tabele:

dep:
id | name

celldep:
id | namecell | id_dep

Pobieram rekordy jednym zapytaniem
  1. SELECT a.name,a.id, b.namecell,b.id_dep FROM dep a, celldep b WHERE a.id=b.id_dep ORDER BY name


Dane zostają wyświetlane, jednak nazwa z tabeli dep powiela mi się dla każdego rekordu z celldep. Jak załatwić tą sprawę. Chodzi mi o stworzenie optymalnego zapytania do bazy, aby pobrane dane wczytywały się szybko.
Zaznaczę że kategorii w tabeli dep jest około 30 a rekordów w celldep blisko 240.
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




zrobiles raczej dobrze. Ja bym jednak zamiast from tabela1, tabela2 uzyl left join tabela2
Go to the top of the page
+Quote Post
potreb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No właśnie, moje zapytanie pobiera dane z dwóch tabel a do łączenia służy left join.
Próbowałem to zrobić za pomocą left joina, ale wychodził większy miks niż przedtem, nie wiem dokładnie na jakiej zasadzie to działa, choć czytałem trochę, ale na łopatologiczny umysł nie działa, więc prosiłbym o jakieś wskazówki lub przykład.

Wiem, że jest jeszcze wersja DISTINCT, ale raczej to się nie przyda

Z left join, efekt taki sam jak poprzednio:
  1. SELECT name,namecell
  2. FROM dep LEFT JOIN celldep ON dep.id = celldep.id_dep WHERE dep.id = celldep.id_dep ORDER BY name


Ten post edytował potreb 2.04.2009, 20:41:31
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




nie obejdziesz tego. moglbys to rozbijac na kilka zapytan ale po co?

Tu masz moj przyklad z grupowaniem wynikow. Masz tam left joina
http://nospor.pl/grupowanie-wynikow-n35.html

Cytat
Z left join, efekt taki sam jak poprzednio:
No i prawidlowo (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ja nie mowilem ze bedzie inny efekt, tylko ze lepiej dac left join (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
potreb
post
Post #5





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No okey, przyjrzę się temu dokładnie.
Niedawno testowałem drzewo oparte na php i mysql i ładnie wszystko chodzi.
Nie wiem czy zastosowanie drzewa jest opłacalne?

Chcę wszystko zrobić w jednym zapytaniu aby nie obciążać serwera i nie potrzebnie robić zapętlanie.

Zrobiłem test na localu, fajny art. Dzięki wielkie!

Ten post edytował potreb 2.04.2009, 21:13:46
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




drzewo do tej sytuacji? bez przesady (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
potreb
post
Post #7





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


No tak, tylko, że ja mam jeszcze kategorie, podkategorie, produkty więc to co innego. Nie wiem czy nie potrafię czegoś zrobić ale z twoim przykładzie są pokazane nazwy produktów. A jak zrobić np jeszcze ilość tych produktów id produktu i więcej danych??
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
kategorie, podkategorie, produkty więc to co innego
no w takim razie to tak.

Cytat
Nie wiem czy nie potrafię czegoś zrobić ale z twoim przykładzie są pokazane nazwy produktów. A jak zrobić np jeszcze ilość tych produktów id produktu i więcej danych
Wejdź jeszcze raz do arta. Zmodyfikowałem w nim Przykład 1 o pobieranie więcej danych produktu. Teraz jak bedziesz chciał jeszcze coś dołożyc to już chyba sobie poradzisz (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
potreb
post
Post #9





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Dzięki, wielkie za pomoc. Teraz elegancko mi idzie. Z resztą już sobie poradziłem wcześniej. Szkoda, że dla mysql nie ma żadnego fajnego algorytmu, który tworzyłby drzewo. Listowanie wszystkich kategorii, podkategorii, produktów. Wcześniej robiłem to wszystko na bazie access-a, niestety jak dla mnie był strasznie oporny.
Zostanie mi stworzenie panelu zarządzania, ale dzięki twojemu rozwiązaniu będzie to o wiele przejrzyste.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 16:09