![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam dwie tabele: -osoby (pola: id_osoby, imie, id_miejscowosci_gdzie_mieszka, id_miejscowosci_gdzie_sie_urodzil) -miejscowosci (pola: id_miejscowosci, nazwa) wszystkie pola są not null Chwiałbym uzyskać dane w takiej postaci: id_osoby|imie|nazwa miejscowosci w ktorej mieszka|nazwa miejscowosci gdzie sie urodził| Napisałem takie zapytanie: SELECT o.imie, mieszka.nazwa, urodzony.nazwa FROM osoby o, miejscowosci mieszka, miejscowosci urodzony WHERE o.id_miejscowosci_gdzie_mieszka=mieszka.id_miejscowosci AND o.id_miejscowosci_gdzie_sie_urodzil=urodzony.id_miejscowosci Wydaje mi się że to zapytanie działa poprawnie. ale moje pytanie jest takie czy jest to zgodne ze standardami mysql oraz co za tym idzie czy następna wersja mysql nie odrzuci mi takiego zapytania. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
dobrze jest. możesz ewentualnie skorzystać ze złączenia LEFT.
-------------------- aplikacje internetowe | Symfony
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
rozumiem że chodzi Ci o przypadek w którym jedno z pól jest puste?? czy do czego takie złączenie posłuży??
Ten post edytował billy235 2.12.2008, 21:34:31 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 203 Pomógł: 55 Dołączył: 23.11.2008 Skąd: UKF Ostrzeżenie: (0%) ![]() ![]() |
Hmm takie zapytanie jakie ty ulozyles jest raczej malo optymalne. Gdyz na zlaczeniach baza pracuje szybciej. Majac tabele:
z nazwami miast(dwa): id,nazwa z 3 wierszami oraz z osobami (jeden):id,nazwa,id_1,id_2 z dwoma krotkami otrzymałem takie same wyniki po wykonaniu dwoch zapytan z tym ze:
Dane z phpmyadmin:Pokaż rekordy 0 - 1 (2 wszystkich, Wykonanie zapytania trwało 0.0006 sekund(y))
Dane z phpmyadmin:Pokaż rekordy 0 - 1 (2 wszystkich, Wykonanie zapytania trwało 0.0005 sekund(y)) Moze to malo na takie testowanie ale sprawdz u siebie jak bedzie z ta wydajnascia. Moim zdaniem drugi sposob powinien dzialac szybciej. Pozdrawiam. -------------------- Pomagam jeśli mam czas oraz jak się na tym znam :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 27 Pomógł: 1 Dołączył: 2.10.2007 Ostrzeżenie: (0%) ![]() ![]() |
dzięki wam obu za pomoc jak baza będzie skończona i trochę bardziej wypełniona to też zmierzę w ten sposób szybkość.
Teraz jak dokonuje testu a jest tam raptem 10 rekordów to nie widzę różnicy odświeżając każde zapytanie po kilka razy uzyskuje średnio po 0,0004s. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 385 Pomógł: 55 Dołączył: 1.03.2005 Skąd: śląsk Ostrzeżenie: (0%) ![]() ![]() |
Hmm takie zapytanie jakie ty ulozyles jest raczej malo optymalne. Gdyz na zlaczeniach baza pracuje szybciej. żeby była jasność to zapytanie, które ułożył autor tematu też wykorzystuje złączenie - zwykły JOIN, to jest coś jak INNER JOIN. LEFT JOIN będzie lepszy do wyświetlania użytkowników, bo jak ktoś nie poda miasta to będzie miał po prostu puste pole ale się wyświetli. przy inner join już go nie będzie w wynikach. to tylko takie małe info:) -------------------- aplikacje internetowe | Symfony
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 22:42 |