![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam 2 tabelę :
1) xn_users 2) xn_ranks Teraz chcę otrzymać takie coś: Wybierz (POLA) z tabel xn_users, xn_ranks, takie, że xn_ranks. ->pole xn_user.id równe jest 5 ORAZ ->Jeżeli xn_users.rank_id>0 Pobierz xn_ranks.id=xn_users.rank_id W Przeciwnym Razie pobierz taką wartość, że rank_min>xn_users.points (pierwsza wartość, która jest większa równa od wymaganej ilości punktów) Napisałem pytanie do bazy:
Niestety, jak się domyślacie nie działa ![]() Pozdrawiam Ten post edytował Spirit86 7.11.2005, 19:01:34 -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 548 Pomógł: 2 Dołączył: 19.07.2003 Ostrzeżenie: (0%) ![]() ![]() |
witam ...
zwraca błąd ![]() rozbij to na logiczne zdanie ( tylko OR XOR i AND) ... jakoś tak (totalnie z palca ale taka zasada jest ...
na pewno musisz przerobić pozdrawiam -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 1.12.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
na szybko, ale powinno działać, chyba że nie zrozumiałem do końca tego co chciałeś osiągnąć. -------------------- MySQL said:
You have an error in your SQL syntax near ' `sygnatura` VARCHAR, NOT NULL |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
niestety nie działa, tzn. jak użytkownik ma więcej punktów, niż najwyższe ranga , wtedy zapytanie nie zwraca ŻADNEGO rezultatu, a ja chciałbym, żeby zwracało wszystko, a pole rank_name dało puste.
Ten post edytował Spirit86 8.11.2005, 16:37:32 -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 1.12.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Czy dla innych przypadków zwraca Ci poprawne dane
![]() -------------------- MySQL said:
You have an error in your SQL syntax near ' `sygnatura` VARCHAR, NOT NULL |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ech, tylko problem w tym, że to ma być przyjazne dla serwera, czyli pytania mają go obciążać w jak najmniejszym stopniu, tu liczy się każdy milisekunda (jak w reklamie MobilOne
![]() -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 1.12.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Jak najbardziej się zgodze. Jednak to zapytanie wcale takie obciążające nie jest, mógłbyś spróbowac dodac indeks na kolumnie rang_id w tabeli z userami, moglo by to przyspieszyc sprawe, jesli rzeczywiscie jest on az tak wolna.
-------------------- MySQL said:
You have an error in your SQL syntax near ' `sygnatura` VARCHAR, NOT NULL |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
hehe. a zmodyfikował byś to pytanie, tak, aby działało ? Nie mam bladego pojęcia na czym polega union, a potrzebuję tego pytania najszybciej jak się da:).
Pozdrawiam -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Praktyczna rada: czekasz po kilka godzin na odpowiedz -- w tym samym czasie zdazyl bys poznac UNIONa
![]() -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat(dr_bonzo @ 2005-11-08 21:11:18) Praktyczna rada: czekasz po kilka godzin na odpowiedz -- w tym samym czasie zdazyl bys poznac UNIONa ![]() w międzyczasie robię rysunek techniczny ![]() -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 1.12.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
UNION pozwala ci łączyc wyniki kilku zapytań. Aby można było łączyc poszczególne zapytania, musi zby spełniony warunek : ilosc i typy pól w sekcji select musi byc identyczna we wszystkich zapytania laczonych unią. Proste i szybkie.
Co do Twojego przypadku to kwestia rozchodzi się o stworznie dodatkowego zapytania, które obsługuje kolejna grupe rekordow ( gdzie punktacja > rangi ). Jesli sobie nie poradzisz to może jutro jak bede mial chwile to wrzuce ta 3 unie. btw: dodales indeks, pomoglo ![]() Ten post edytował Synaps 9.11.2005, 00:55:35 -------------------- MySQL said:
You have an error in your SQL syntax near ' `sygnatura` VARCHAR, NOT NULL |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
ech, zauważyłem, że jeśli uzytkownik ma 0 punktów, wtedy Zwraza wiele rekordów.
ykonanie zapytania trwało 0.0190 sekund Dzięki za wytłumaczenie zasady działania Union. Wiesz, zastanawiam się, czy nie dało by się użyć czegoś a'la Switch w php. Tzn., coś podobnego do:
tylko nie mogę doszukać się w manualu switcha, ech kiepsko z tym moim angielskim -------------------- Audio: Metallica, Soil, RHCP, OffSpring, Green Day, "Retro", Gorillaz, Disturbed, Coma
DB: MySQL 4.1 | php: 4.4.3 Pomogłem Ci? Wciśnij przycisk POMÓGŁ. |
|
|
![]()
Post
#13
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 717 Pomógł: 0 Dołączył: 12.06.2002 Skąd: Wolsztyn..... Studia: Zielona Góra Ostrzeżenie: (0%) ![]() ![]() |
Szukaj pod haslem CASE.. jest cos takiego w MySQL'u. Po przyklady mozesz zajrzec do przyklejonego topicu w tym dziale.
-------------------- Brak czasu :/
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:46 |