Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> klopotliwe zapytanie do bazy
mega
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.09.2004

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


sytuacja :
mamy tabele X z 3 komorkami : id_y, txt i liczba.

teraz wyciagmy z tabeli wszystkie rekordy w ktorych wartosc komorki "liczba"jest wieksza jak 100 :
Kod
$zapytanie = "SELECT * FROM X WHERE liczba > 100";

powiedzmy ze w wyniku tego otrzymalismy 10 rekordow gdzie np. dla 3 z tych rekordow wartosc komorki "id_y" jest taka sama.

teraz pytanie :
jak ulozyc zapytanie do bazy aby w momencie gdy wartosc komorki tak jak w tym przypadku komorki "id_y" sie powtarza wyciagnac jedynie jeden wiersz z najwyzsza wartoscia komorki "liczba"? czego wynikiem w tym przykladzie byloby 8 a nie 10 wierszy.


pozdr.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
DeyV
post
Post #2





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




  1. SELECT
  2. id_y, txt , MAX( liczba )
  3. FROM X WHERE liczba > 100
  4. GROUP BY id_y


// ps. jak masz problem z zapytaniem SQL, wklejaj tylko zapytanie, i używaj poprawnego bbCode


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
mega
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.09.2004

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


wlasnie probowalem to juz wczesniej wykonac w podobny sposob lecz rowniez bez rezulatu, w momenie gdy podaje ow MAX(liczba) nie wyciaga mi zadnych rekordow.
Dane wyciagane sa z dwoch tabel. Pokaze moze kod nie przykladowy ale ten na ktorym bazuje :

  1. $zapytanie = "SELECT tabela1.id_x,
  2. tabela1.txt,
  3. tabela2.id_y
  4. FROM tabela1, tabela2 WHERE tabela2.liczba > 100 and tabela1.id_x = tabela2.id_y";


robiac to w powyzszy sposob wyciagam te wpisy, ktore mnie interesuja lecz, dla czesci z nich "id_x" ma identyczna wartosc, w takiej sytuacji potrzebny mi jest ten z najwyzsza wartoscia "tabela2.liczba"

Ten post edytował mega 10.01.2005, 10:07:16
Go to the top of the page
+Quote Post
sf
post
Post #4





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

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


Musisz użyć max :-) Jak Ci nic nie zwraca to sprawdź błąd... W postgresql z tego co pamiętam trzeba podać przy GROUP BY wszystkie pola, które podaliśmy przy SELECT bo inaczej się buntował ;-)

Najlepiej sprawdź sobie to zapytanie bezpośrednie w bazie danych, a nie przez php, szybciej się wtedy pracuje i tworzy odpowiednie zapytanie.


--------------------
Zapraszam na mój php blog, tworzenie stron.
Go to the top of the page
+Quote Post
mega
post
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.09.2004

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


Cytat
Jak Ci nic nie zwraca to sprawdź błąd

bledu jako takiego nie pokazuje, poprostu nie wyswietla rekordow.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:23