Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Nie radze sobie z zapytaniem
Vengeance
post
Post #1





Grupa: Zarejestrowani
Postów: 657
Pomógł: 2
Dołączył: 15.08.2003
Skąd: Łódź

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


Witajcie... Mam takie tabelki:

Cytat("auction")
id | typeID | siteID | minimalBid | startDate | endDate


Cytat("type")
id | name


Cytat("site")
id | name | url


Cytat("bid")
id | auctionID | userID | bid


Cytat("user")
id | username | password | email


Potrzebuje to wszystko połączyć w jedno :] Mam już taki kodzik:

  1. SELECT auction.*, type.name AS typeName, site.name AS siteName, site.url AS siteUrl
  2.  
  3. FROM auction INNER JOIN type ON auction.typeID = type.id INNER JOIN site ON auction.siteID = site.id
  4. WHERE auction.endDate > UNIX_TIMESTAMP()
  5. ORDER BY auction.endDate ASC


Potrzebuje jeszcze do każdego wyniku dołączyć najwyższą kwotę jaką ktoś zalicytował, coś ala:
  1. SELECT bid.bid, user.username
  2.  
  3. FROM bid INNER JOIN user ON bid.userID = user.id
  4. WHERE bid.auctionID = $id
  5. ORDER BY bid.bid DESC LIMIT 1


Jak to wszystko złączyć w jedno zapytanie.

Jakby ktoś nie wiedział to opisze jeszcze słownie co to ma robić:
Cytat
Chodzi o pobranie wszystkich aukcji z tabeli Auction i przyporzadkowanie numerom ID z kolumn TypeID i SiteID odpowiednich wartości (nazw). Zapytanie ma także dołączać do wyniku maksymalnie zalicytowaną kwotę (i kto dokonał licytacji) a w razie braku ofert zwróci wartość kolumny MinimalBid z tabeli Auction.


Z góry dziękuje! Jak ktos mi pomoże będę po stokroć wdzięczny.
ps. możecie także zaproponować jakieś inne logiczne rozdzielenie budowy tabel.

---
proszę używać tagu [ sql ] do oznaczania zapytań SQL
aleksander
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


@popbart wszystko ladnie pieknie tylko problem taki widze ze w podzapytaniu trzeba zwrocic tez id usera, bo taki byl cel autora.

Dla samej kwoty to cos takiego:
  1. SELECT auction.*,temp.max_kwota, type.name AS typeName, site.name AS siteName, site.url AS siteUrl
  2. FROM (SELECT max(bid.bid) AS max_kwota, bid.id_auction
  3. FROM bid GROUP BY bid.id_auction) AS temp INNER JOIN auction ON temp.id_auction=auction.id_auction INNER JOIN type ON auction.typeID = type.id INNER JOIN site ON auction.siteID = site.id WHERE auction.endDate > UNIX_TIMESTAMP() ORDER BY auction.endDate ASC


Ten post edytował SongoQ 15.06.2005, 20:49:35
Go to the top of the page
+Quote Post

Posty w temacie


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: 11.10.2025 - 09:43