sql LEFT OUTER JOIN, konstrukcja zapytania |
sql LEFT OUTER JOIN, konstrukcja zapytania |
31.07.2012, 18:51:03
Post
#1
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
Mam takie dwie tabele:
"Mecz": (id) (id_kolejka) 148 1 149 1 150 1 151 1 152 1 153 1 154 1 155 1 156 1 157 1 "Typ": (typ_gospodarz) (typ_gosc) (id_mecz) (id_gracz) (id_kolejka) W tabeli "Typ" dla użytkownika o ID = 3 nie ma obecnie żadnych danych ponieważ jeszcze nie typował I teraz tak. Chciałem aby zapytanie pobrało wartości NULL dzięki złączeniu LEFT OUTER JOIN Poniższe zapytanie nie wyświetla nic. Dlaczego ? Co w tym zapytaniu jest nie tak: ?
Ten post edytował damianooo 31.07.2012, 18:51:19 |
|
|
31.07.2012, 18:55:36
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) |
W tabeli typ, nie ma rekordu z id gracza równym 3, a w zapytaniu jasno określasz, że t.id_gracz ma być właśnie równe trzy - stąd brak rekordów.
|
|
|
31.07.2012, 18:57:36
Post
#3
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
nic nie wyświetla, ponieważ w zapytanie nadrzędnym w klauzuli where masz warunek t.id_gracz = 3, a sam napisałes, że nie ma takiego wpisu,
dostałbyś NULLe gdyby zapytanie nadrzędne zwróciło jakiś zbiór i warunki złączenia nie mogłyby być spełnione -------------------- :]
|
|
|
31.07.2012, 19:01:25
Post
#4
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
ok to mam jeszcze tabelę "Gracz"
"Gracz": (id) 1 2 3 4 5 6 czy powinienem złączyć 3 tabele aby uzyskać oczekiwane wyniki ? Przecież musi być sposób aby wyświetlić NULLe. Jak to powinienem zrobić? Chodzi o to że mam panel admina i chciałbym na stronie wyświetlić INPUTy w których byłyby puste pola w miejscach gdzie użytkownicy nie obstawili jeszcze meczy. Inputy chcę wyświetlić za pomocą pętli FOR ( będzie ich duża ilość ). Mam problem z podaniem odpowiedniego zapytania aby mi się to ładnie wyświetliło na stronie w rzędach. Takie zapytanie też nie daje oczekiwanych rezultatów:
Proszę o podpowiedź.. dzięki Ten post edytował damianooo 31.07.2012, 19:11:10 |
|
|
31.07.2012, 19:12:02
Post
#5
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
nie mam pod rękaą konsoli mysql, a więc zapodam pewną ideę:
na polski: wybierz te mecze, których nie obstawił gracz o id równym 3 -------------------- :]
|
|
|
31.07.2012, 19:34:17
Post
#6
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
wszystko fajnie tylko, że ja muszę wyświetlić tak dla każdego z 10 graczy i 10 meczy z każdej kolejki i musi być w następujący sposób: typ_gospodarz - typ_gosc . Chcę by inputy były puste jak gracz nie obstawił i stąd potrzeba tego zapytania ze złączeniem LEFT OUTER JOIN aby wyświetlił mi się NULLe
więc zapytanie potrzebuję mieć w instrukcji FOR
twoje zapytanie tutaj chyba nie pomoże ... a może się mylę ? Ten post edytował damianooo 31.07.2012, 19:36:42 |
|
|
31.07.2012, 19:43:42
Post
#7
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) |
WTF? Podziwiam ludzi, ktorzy biora sie za pisanie gier nie znajac podstawowych podstaw. Moze glupie pytanie, ale musze je zadac. Czy petla for wyglada tak, jak nam ja przedstawiles, czy moze zapytanie SQL jest jednak w apostrofach/cudzyslowiach? |
|
|
31.07.2012, 20:08:02
Post
#8
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
lukaskolista nie! nie tak wygląda w rzeczywistości.
Na prawdę wygląda to tak:
podałem baaaardzo uproszczony przykład żeby wiadomo było co chcę uzyskać. Ten post edytował damianooo 31.07.2012, 20:14:07 |
|
|
31.07.2012, 20:14:34
Post
#9
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
a próbowałeś odpalić moje zapytanie?
jak dasz pliczek sql z tabelami i danymi, które będę mógł sobie zaimportować do bazy, to w wolnej chwili pobawię się tym zapytaniem -------------------- :]
|
|
|
31.07.2012, 20:20:42
Post
#10
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
ok rzemek01
|
|
|
31.07.2012, 20:49:08
Post
#11
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
nie mogłeś tego wrzucić na jakiś zewnętrzny serwer?
a za literówkę w nicku karny jeżyk PS. sprawdziłem, moje zapytanie, co podałem wyżej, działa, aż sam się zdziwiłem, bo pisałem z głowy ale rozumie, że tobie chodzi o wyświetlenie typów gracza na każdy mecz dla każdego z gracza chodzi Ci o coś takiego:
Ten post edytował rzymek01 31.07.2012, 21:06:08 -------------------- :]
|
|
|
1.08.2012, 07:44:46
Post
#12
|
|
Grupa: Zarejestrowani Postów: 493 Pomógł: 2 Dołączył: 15.07.2011 Skąd: Katowice Ostrzeżenie: (0%) |
chyba mi Stary pomogłeś ale przetestuję to później jak wrócę z pracy i dam Ci "plus"
|
|
|
Wersja Lo-Fi | Aktualny czas: 3.05.2024 - 21:33 |