Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]sformułowanie zapytania
kleszczoscisk
post 4.09.2009, 14:48:45
Post #1





Grupa: Zarejestrowani
Postów: 164
Pomógł: 3
Dołączył: 13.12.2007

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


Witam

Pobieram z kilku tabel produkty, producentów i opisy produktów w 2 językach. Pobieram obie wersje językowe opisów bo póki co wersji obcojęzycznych jest znikoma ilość i to co się da tłumaczę przez php z automatu.
Problem:
Jak wykluczyć w zapytaniu polską wersję opisu produktu jeśli istnieje obcojęzyczna ?
W tabeli 'produkty' każdy produkt ma unikalny ID. W tabeli 'opisy' każdy opis ma odpowiedni ID produktu i oprócz tego oznaczenie języka np. 'pl', 'en'.
Czy rozwiązaniem byłoby podzapytanie w rodzaju [SQL] pobierz, plaintext
  1. SELECT DISTINCT product_id FROM products
[SQL] pobierz, plaintext , które byłoby jednocześnie warunkiem w zapytaniu głównym: [SQL] pobierz, plaintext
  1. ... AND WHERE products.product_id IN(SELECT DISTINCT product_id FROM products) ...
[SQL] pobierz, plaintext Czy może powinienem filtrować uzyskane wyniki zapytania zamiast modyfikować zapytanie... ?
Musiałbym wtedy wywalić z tablicy (uzyskanej przez while($r = mysql_fetch_array($rekord)){}) te rekordy z opisem 'pl', które mają swój odpowiednik 'en'... Jak ?
?
Proszę o pomoc, podpowiedzi.

Ten post edytował kleszczoscisk 4.09.2009, 14:58:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post 11.09.2009, 19:23:55
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Jeśli tak to porządny serwer sobie załatw, bo takie errory to bodajże gdzieś w Mysql 3.X były, a 5.X już od jakiegoś czasu jest... Ostatni raz tego typu błąd widziałem chyba 2-3 lata temu. Dlatego myślę,że jakiś naprawdę stary serwer masz w użytku. Czyżby Krasnal? winksmiley.jpg
Patrząc na kod chyba wszystko wrzucasz jako kolumny. Jeśli tak jest to zastosuj składnię: nazwa_tablicy.* lub wręcz samo *. Ale wybieranie wszystkiego to bezsens. Bierz tylko potrzebne kolumny. Dzięki temu przyspieszasz zapytanie poprzez zmniejszenie ilości przesyłanych danych. I zapytanie zmniejszysz.

Ten post edytował thek 11.09.2009, 19:40:56


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 19:18