Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jakie powinno być zapytanie?
Forum PHP.pl > Forum > Bazy danych > PostgreSQL
Blackhole
Witam! Dawno mnie tu nie było.

Mam tabelę:
Kod
  id   |   rok  |  miesiac  |  dzien  
Pole id to serial, więc jest inikatowe. W bazie mam tak, że czasem rok, miesiac i dzien mogą być identyczne.
Jak teraz wyciągnąć z bazy wszystkie rekordy o określonym polach rok, miesiac i dzien, ale tak, by w wyniku była też informacja o id danego rekordu?
Ja doszedłem do tego:
Kod
$sql = "SELECT * FROM onija a,onija b WHERE a.id=".$_GET['id']." AND (a.rok=b.rok AND a.dzien=b.dzien AND a.miesiac=b.miesiac)";
ale to zapytanie wszystkim rekordom przypisuje w wyniku jedną wartość sad.gif
Jak powinno być poprawnie?
mike
1. Rozbicie daty na składowe może przynieść tylko kłopoty tongue.gif Poczytaj sobie: MySQL manua -> Date and Time Types
2.
  1. <?php
  2.  
  3. $sql = "SELECT * FROM onija WHERE rok = ". $_GET[ 'rok' ] ." AND miesiac = " . $_GET[ 'miesiac' ] . " AND dzien = " . $_GET[ 'dzien' ];
  4.  
  5. ?>


----edit (09:03:00)----
Sorki za linka do manuala MySQL, nie gapnąłem się że to Postgre :/
Ale uwaga co do typów aktualna.
~mike_mech
Blackhole
mike_mech, mam jeszcze jedną uwagę/pytanie.
Wiem już (bo mnie na to naprowadziłeś), że mogę zrobić tak, iż najpierw zapytam, jaką "datę" ma rekord o poszukiwanym przeze mnie id, a potem znaleźć rekordy o tej "dacie". A czy można to jakoś rozwiązać jednym zapytaniem?
mike
Zakładam że data jest jednym polem, bo mi się nie chce pisać tych AND'ów tongue.gif
  1. <?php
  2.  
  3. $strSQL = "SELECT * FROM tabela WHERE date = (SELECT date FROM tabela WHERE id = " . $_GET[ 'id' ] . ")";
  4.  
  5. ?>


Możesz użyć złącznia, będzie szybsze od podzapytania. ALe ja jakoś bardziej lubię podzapytania winksmiley.jpg

P.S.
Acha, mam dzisiaj jakiś dobry humor, więc piszę to dopiero teraz:
1. Jakiś ten temat nie bardzo. Popraw go.
2. Jednak prośby o gotowce rzadko są przyjmowane OK.
Blackhole
Dzięki smile.gif Ja też bardziej lubię podzapytania - są ładniejsze winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.