![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.08.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Mam takie zapytanie męczę się z nim od kilku dni i nie mogę sobie poradzić Chodzi mi o połączenie 2 tabel i jeśli w drugiej tabeli niema danych to zeby przyjął domyślne wartości np mamy profil w tabeli object 2332 ale tego profilu niema w object_stats, jeśli niema to ustawia domyślne wartości id. taki jaki ma tabela object_stats wyswietlen i data dzisiejsza w tym przypadku 2013-01-24 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
To co masz we WHERE daj do JOIN zamiast WHERE.
Czyli:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.08.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
To co masz we WHERE daj do JOIN zamiast WHERE. Czyli:
Przy RIGHT JOIN dodało 1 nulla z nieistniejącym profilem w OBJECT Przy LEFT JOIN Wyświetliło Wszystko z object z innym miastem itp Ten post edytował kajtek2008 24.01.2013, 15:26:26 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 421 Pomógł: 310 Dołączył: 18.04.2012 Ostrzeżenie: (0%) ![]() ![]() |
tak sobie zmieniasz LEFT/RIGHT?
Masz pojęcie co to w ogóle robi? Znasz strukturę? Może wklej szczątkowe dane z obu tabel i oczekiwany wynik... |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.08.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Znaczy ogólnie obróciłem tabele, jeśli chodzi o tego WHERE
Dam przykład w takiej wersji
Ten post edytował kajtek2008 24.01.2013, 20:57:56 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
nie wiem skad w wynikach "dwa" sie wzielo
profile left join stat |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.08.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
nie wiem skad w wynikach "dwa" sie wzielo profile left join stat Faktycznie miałem na początku lefta, ale zmieniłem na right bo był problem z ilością wyświetleń. Przestało to jednak wyświetlać poprawnie po dodaniu MAX(date) pomijał pierwsze rekordy w których były relacje do innych dat. Przetestuje jak działa to w ciut dłuższym okresie bo baza ma tysiące rekordów. Da się poniższe zapytanie bardziej zredukować ? ponieważ dość długo się wykonuje zapytanie
Ten post edytował kajtek2008 24.01.2013, 23:03:35 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 34 Dołączył: 22.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
zamiast tego
AND ( date = (SELECT max( date ) FROM object_stats )) sprobuj
i daj index na city probuj rozne rzeczy z explain plan |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 15.08.2009 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
zamiast tego AND ( date = (SELECT max( date ) FROM object_stats )) sprobuj
i daj index na city probuj rozne rzeczy z explain plan ale max(date) jest w object_stats |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.06.2024 - 17:08 |