Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Pomijanie podobnych wyników
stefik4
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


Witam. W moim portalu zrobiłem panel "kto mnei obserwował". Wygląda to tak:

(IMG:http://upload.webds.pl/pictures/16790.jpg)

Jak widac podobne rekordy są wyświeltane, a ja chce , żeby było to w takiej postaci:

(IMG:http://upload.webds.pl/pictures/86918.jpg)

Chodzi, żeby pominąc te same rekordy. niestety nie wiem jak to zrobić.

Moje zapytanie wygląda tak:
  1. SELECT a.`kto`, a.`kogo`, a.`kiedy`,b.`id`, b.`username`, b.`team` FROM `kto_obserwowal` a
  2. LEFT JOIN `teams` b ON b.`id`=a.`kto`
  3. WHERE a.`kogo`='1' AND a.`kto`!='1'
  4. ORDER BY a.`kiedy` DESC


Ten post edytował stefik4 31.05.2010, 16:09:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Pawel_W
post
Post #2





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

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


google -> SQL DISTINCT
Go to the top of the page
+Quote Post
stefik4
post
Post #3





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


Zrobiłem:

  1. SELECT DISTINCT a.`kto`, a.`kogo`, a.`kiedy`,b.`id`, b.`username`, b.`team` FROM `kto_obserwowal` a
  2. LEFT JOIN `teams` b ON b.`id`=a.`kto`
  3. WHERE a.`kogo`='1' AND a.`kto`!='1'
  4. ORDER BY a.`kiedy` DESC


lecz nadal to samo
Go to the top of the page
+Quote Post
tehaha
post
Post #4





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


  1. SELECT a.`kto`, a.`kogo`, a.`kiedy`,b.`id`, b.`username`, b.`team` FROM `kto_obserwowal` a
  2. LEFT JOIN `teams` b ON b.`id`=a.`kto`
  3. WHERE a.`kogo`='1' AND a.`kto`!='1'
  4. ORDER BY a.`kiedy` DESC GROUP BY a.`kto`
Go to the top of the page
+Quote Post
stefik4
post
Post #5





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


Mam takie zapytanie:
  1. SELECT a.`kto`, a.`kogo`, a.`kiedy`,b.`id`, b.`username`, b.`team` FROM `kto_obserwowal` a
  2. LEFT JOIN `teams` b ON b.`id`=a.`kto` WHERE a.`kogo`='1' AND a.`kto`!='1'
  3. GROUP BY a.`kto`
  4. ORDER BY a.`kiedy` DESC LIMIT 10


jest odbrze tylko zwraca mi tylko stare rekordy ;/

(IMG:http://upload.webds.pl/pictures/37001.jpg)

Ten post edytował stefik4 31.05.2010, 16:47:44
Go to the top of the page
+Quote Post
tehaha
post
Post #6





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


spróbuj połączyć to z tym tutaj http://www.cafewebmaster.com/mysql-order-sort-group
Go to the top of the page
+Quote Post
stefik4
post
Post #7





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


niezbyt wiem jak to użyć w moim przykładzie
Go to the top of the page
+Quote Post
tehaha
post
Post #8





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


musisz z tym pokombinować myślę, że to będzie coś takiego:
  1. SELECT a.`kto`, a.`kogo`, a.`kiedy`,b.`id`, b.`username`, b.`team` FROM (SELECT kto, kogo, kiedy FROM kto_obserwowal ORDER BY kiedy DESC) AS temporary_table a
  2. LEFT JOIN `teams` b ON b.`id`=a.`kto`
  3. WHERE a.`kogo`='1' AND a.`kto`!='1'
  4. GROUP BY a.`kto`
Go to the top of the page
+Quote Post
stefik4
post
Post #9





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


Zmieniłem to temporary_table na kto obserowowal i nic. wywala błąd

  1. #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'a LEFT JOIN `teams` b ON b.`id`=a.`kto` WHERE a.`kogo`='1' AND a.`kto`!='1' GR' at line 1


a zapytanie wyglada tak:
  1. SELECT a.`kto` , a.`kogo` , a.`kiedy` , b.`id` , b.`username` , b.`team`
  2. FROM (
  3.  
  4. SELECT *
  5. FROM `kto_obserwowal`
  6. ORDER BY `kiedy` DESC
  7. ) AS `kto_obserwowal` a
  8. LEFT JOIN `teams` b ON b.`id` = a.`kto`
  9. WHERE a.`kogo` = '1'
  10. AND a.`kto` != '1'
  11. GROUP BY a.`kto`
  12. LIMIT 0 , 30


Ten post edytował stefik4 31.05.2010, 17:25:10
Go to the top of the page
+Quote Post
tehaha
post
Post #10





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


ciężko mi stwierdzić co tu nie gra bo musiałbym to u siebie przetestować, najlepiej gdybyś najpierw wywalił to LEFT JOIN i spróbował stworzyć maksymalnie uproszczone zapytanie z działającym sortowaniem przed grupowaniem, a potem dorzucić te LEFT JOIN, a to "AS `kto_obserwowal`" to lepiej daj inną nazwę, bo nazwanie pobranego wyniku tak samo jak tabela też może powodować jakieś błędy
Go to the top of the page
+Quote Post
stefik4
post
Post #11





Grupa: Zarejestrowani
Postów: 176
Pomógł: 1
Dołączył: 18.11.2007

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


uprosilem do takiego zapytania:

  1. SELECT `kto`, `kogo`, `kiedy` FROM (SELECT * FROM `kto_obserwowal` ORDER BY `kiedy` DESC) AS `kto_obserwowal`
  2. WHERE `kogo`='1' AND `kto`!='1'
  3. GROUP BY `kto`


i dziala odbrze tylko jak dopsiuje to a po tym ' as `kto_obserwowal` ' to juz mi wywala blad ;/
Go to the top of the page
+Quote Post
tehaha
post
Post #12





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


to zrób:
  1. SELECT `kto`, `kogo`, `kiedy` FROM (SELECT * FROM `kto_obserwowal` ORDER BY `kiedy` DESC) AS `a`
  2. WHERE `kogo`='1' AND `kto`!='1'
  3. GROUP BY `kto`
wywala błąd bo nie można drugi raz aliasu zrobić

Ten post edytował tehaha 31.05.2010, 17:46:27
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: 23.08.2025 - 23:24