Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie SQL
one_eddie
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 23.05.2003
Skąd: Polska

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


Mam 2 tabele:

Kod
Tabela Logi:
+----+---------+------+
| id | idosoby | data |
+----+---------+------+

tabela osoby:
+----+------+----------+
| id | imie | nazwisko |
+----+------+----------+


napisalem zapytanie ktore wypisuje mi wszystkie logi i zamiast wraz z id pokazuje imie nazwisko:

Tabela wynikowa:
Kod
+----+---------+------+----------+------+
| id | idosoby | imie | nazwisko | data |
+----+---------+------+----------+------+


Napisalem to tak:

  1. SELECT l.Id, l.idosoby, o.imie, o.nazwisko, l.DATA
  2. FROM logi l, osoby o WHERE o.Id = l.idosoby ORDER BY l.DATA;


Wszystko jest ok tyle ze jest jeszcze admin ktorego nie chce trzymac razem z osobami jego id jest rowne 0. Wiec probowalem zamienic zapytanie na:

  1. SELECT l.Id, l.idosoby, o.imie, o.nazwisko, l.DATA
  2. FROM logi l, osoby o WHERE (o.Id = l.idosoby) OR (l.idosoby=0) ORDER BY l.DATA;


Ale to nie daje poprawnych wynikow?

jesli ktos ma jakis pomysl jak to napisac bede wdzieczny.
Go to the top of the page
+Quote Post
dag
post
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 24.12.2003

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


Cytat(one_eddie @ 2005-07-07 22:52:50)
  1. SELECT l.Id, l.idosoby, o.imie, o.nazwisko, l.DATA
  2. FROM logi l, osoby o WHERE (o.Id = l.idosoby) OR (l.idosoby=0) ORDER BY l.DATA;


Ale to nie daje poprawnych wynikow?

jesli ktos ma jakis pomysl jak to napisac bede wdzieczny.

Spróbuj:
  1. SELECT l.Id, l.idosoby, o.imie, o.nazwisko, l.DATA
  2. FROM logi l, osoby o WHERE (o.Id = l.idosoby) AND (l.idosoby<span style="font-weight: bold;">!=0) ORDER BY l.DATA;
Go to the top of the page
+Quote Post
one_eddie
post
Post #3





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 23.05.2003
Skąd: Polska

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


Nie dziala:

Ale zastanawia mnie dzialanie tego zapytania:
(o.Id = l.idosoby) AND (l.idosoby!=0)

lewy warunek nigdy nie bedzie spelniony. a ze to And to cale zapytanie odpada. mam racje?
Go to the top of the page
+Quote Post
dag
post
Post #4





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 24.12.2003

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


  1. SELECT *
  2. FROM logi l LEFT JOIN osoby o ON (l.idosoby=o.logi AND l.idosoby!=0)


Pokombinuj z czymś takim

Ten post edytował dag 7.07.2005, 22:48:11
Go to the top of the page
+Quote Post
one_eddie
post
Post #5





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 23.05.2003
Skąd: Polska

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


Wielkie dzieki poprawilem to
  1. SELECT *
  2. FROM logi l LEFT JOIN osoby o ON (l.idosoby=o.logi AND l.idosoby!=0)


na:

  1. SELECT l.Id, l.idosoby, o.imie, o.nazwisko, l.DATA
  2. FROM logi l LEFT JOIN osoby o ON (l.idosoby=p.id AND l.idosoby!=0)


i dziala (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

jesli nie ma osoby daje NULL-e jesli jest pojawiaja sie dane
To zapytanie ktore prze-edytowales dzialalo to:

  1. ELECT *
  2. FROM logi l LEFT JOIN osoby o ON (l.idosoby=o.logi) WHERE l.idosoby!=0


nie dziala. Podaje tylko te wpisy ktore maja dane. pozatym musialem we obydwu poprawic o.logi na o.id, nie wiem co rozumiesz przez o.logi ale jest to blad.

Dzieki!

Ten post edytował one_eddie 7.07.2005, 22:46:48
Go to the top of the page
+Quote Post
dag
post
Post #6





Grupa: Zarejestrowani
Postów: 180
Pomógł: 0
Dołączył: 24.12.2003

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


Cytat(one_eddie @ 2005-07-07 23:41:55)
Musialem we obydwu poprawic o.logi na o.id, nie wiem co rozumiesz przez o.logi ale jest to blad.

Dzieki!

Chodzilo mi oczywiście o.id zamiast o.logi ;-) pisałem na szybko więc stąd ta pomyłka (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) W przykładzie pobierałem wszystkie pola bo to, które pola pobierzesz zależy już tylko od Ciebie.

Cieszę się, że Ci pomogłem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Pozdrawiam

BTW. Padam z nóg, jestem bardzo zmęczony hehe (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Dobra już nic nie piszę, bo robię OT ;-)
Go to the top of the page
+Quote Post
one_eddie
post
Post #7





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 23.05.2003
Skąd: Polska

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


ok rozumiem. Jeszcze raz wielkie dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 22.08.2025 - 17:53