Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem ze zbudowaniem zapytania
denis94
post 7.07.2012, 23:07:48
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 8.08.2010
Skąd: Warszawa

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


Witajcie.
Mam problem ze zbudowaniem zapytania do bazy które pobierze z bazy rekord na podstawie innej tabeli

Struktura tabeli o nazwie OWOCE
id,nazwa

Struktura tabeli o nazwie SALATKA
idowoca,stan

Jednym zapytaniem muszę pobrać IDOWOCA z tabeli SALATKA oraz NAZWĘ z tabeli OWOCE z warunkiem tylko gdy STAN=1 oraz IDOWOCA IN(5,10,15) i limit 5

Wszystkie dane powinny znajdować się w jednym mysql_fetch_array

Próbowałem w ten sposób lecz nie zwraca zadnych rekordów pomimo spełnionego warunku:
  1. SELECT a.'nazwa', b.'idowoca' FROM owoce a, salatka b WHERE a.'id' = b.'idowoca' AND b.'idowoca' IN(5,10,15) AND b.'stan'=1 LIMIT 5";

Proszę o pomoc


//EDIT
Rozwiązane
  1. SELECT a.nazwa, idowoca FROM owoce a, salatka WHERE id = idowoca AND salatka.idowoca IN(5,10,15) AND salatka.stan=1 LIMIT 5";


Ten post edytował denis94 7.07.2012, 23:54:35
Go to the top of the page
+Quote Post
SmokAnalog
post 8.07.2012, 10:49:39
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Struktura Twojej bazy jest nielogiczna. Powinieneś mieć tabelę salatki, tabelkę owoce i tabelę łączącą. Niemniej jednak, żeby osiągnąć to o co poprosiłeś w temacie, polecam takie eleganckie zapytanie:
  1. SELECT owoce.id, owoce.nazwa
  2. FROM owoce
  3. JOIN salatka ON salatka.idowoca = owoce.id
  4. WHERE owoce.id IN (5, 10, 15)
  5. AND salatka.stan = 1
  6. LIMIT 5;


Ten post edytował SmokAnalog 8.07.2012, 10:54:14
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 Wersja Lo-Fi Aktualny czas: 27.07.2025 - 08:37