Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zagniezdzone zapytania i laczenie tabel - problem
Forum PHP.pl > Forum > Bazy danych > MySQL
_cichy_
Witam
Szukalem podobnego opisu problemu, niestety jak widac z marnym skutkiem.
Postaram sie opisac cala sytuacja jak najjasniej.

Mam taka tresc zapytania:
  1. SELECT A.cena
  2. FROM ( (SELECT oferty.*, aukcje.*
  3. FROM oferty INNER JOIN aukcje ON (oferty.ID_aukcja = aukcje.ID_aukcja)
  4. WHERE oferty.ID_uzytkownik = '5' AND aukcje.data_zakonczenia < '2006-01-21 3:16:03') AS A)

Pozniej kod php:
Kod
$wynik = @mysql_query($sql, $polaczenie_db);

while ($wiersz = mysql_fetch_row($wynik))
{
}


Wysypuje sie w momencie $wiersz = mysql_fetch_row($wynik),
tresc komunikatu: Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in...

Zapytanie moim zdaniem jest poprawne (wklejalem calosc do Accessa i zadnych bledow nie bylo), kiedy wklejam je do phpmyadmin-a to zwraca mi komunikat: #1060 - Powt�rzona nazwa kolumny 'ID_aukcja'.

Juz nie wiem co mam robic, prosze o pomoc.
Z gory dziekuje za wszelke sugestie i pomysly bardziej doswiadczonych kolegow.
Pozdrawiam.
SongoQ
Zlikwiduj jedno zagniezdzenie nawiasow. Troszeczke dziwne bo nie masz tam podane 2 razy tych samych pol. Mozesz pokazac strukture?
_cichy_
No nawiasy to tylko kosmetyka (pozostalosc po wczesniejszych kombinowanych probach naprawienia sytuacji).
A co do powtorzonych pol to sama nazwa ID_aukcja jest powtorzona. Takie pole znajduje sie zarowno w tabeli aukcje jak i oferty. Z tym, ze przeciez posluguje sie nimi jednoznacznie (podaje przeciez nazwa_tabeli.nazwa_pola), wiec nie wiem dlaczego wypisuje takie bzdury. Jak usune z zagniezdzonego zapytania aukcje.* to calosc dziala (widocznie bede musial recznie podac wszystkie niezbedne mi pola oprocz pola ID_aukcja).
Takie zapytanie juz dziala OK:
  1. SELECT A.cena
  2. FROM (SELECT oferty.*
  3. FROM oferty INNER JOIN aukcje ON (oferty.ID_aukcja = aukcje.ID_aukcja)
  4. WHERE oferty.ID_uzytkownik = '5' AND aukcje.data_zakonczenia < '2006-01-21 10:57:25') AS A


Ale problem jak dla mnie pozostaje nadal. Dlaczego cos takiego oferty.*, aukcje.* nie dziala (preciez to pole identyfikowane jest jednoznacznie dzieki nazwie tabeli).

exclamation.gif! Ech, juz wiem gdzie byl problem z powtorzona nazwa pola. W zagniezdzonym zapytaniu powtorzenia nie bylo, a bylo ono w momencie nazywania widoku jako A. Wtedy faktycznie byly dwa pola identyfikowane jako A.ID_aukcja.
Dziekuje za pomoc. Pozdrawiam.

---
proszę używac właściwych znaczników: [ sql ]
aleksander
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.