Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pomocy z zapytaniem
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witam,

mam dwie tabele
-kategorie
-produkty

kategorie
1 ; kat1
2 ; kat2
3 ; kat3

produkty
1 ; zdjęcie1 ; 1
2 ; zdjęcie2 ; 1
3 ; zdjęcie3 ; 1
4 ; zdjęcie1 ; 2
5 ; zdjęcie2 ; 2
6 ; zdjęcie3 ; 2
7 ; zdjęcie1 ; 3
8 ; zdjęcie2 ; 3
9 ; zdjęcie3 ; 3

tabele łączą się category.category_id = products.category_id

jak teraz jednym zapytaniem wyświetlić
nazwa kategori ; zdjęcie

ale tylko dwa produkty questionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gifquestionmark.gif?


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Co to znaczy 'tylko dwa produkty'?
Go to the top of the page
+Quote Post
john_doe
post
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


żeby zwrócić po dwa produkty w każdej kategorii.
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Dowolne dwa, losowe dwa, pierwsze dwa, inne dwa?
Go to the top of the page
+Quote Post
john_doe
post
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


smile.gif powiedzmy, że 1sze dwa
Go to the top of the page
+Quote Post
Mchl
post
Post #6





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Teraz jeszcze powinienem zapytać 'pierwsze wg jakiego kryterium?' tongue.gif

No ale spróbójmy na przykład tak o:

Kod
SELECT
  c.categoryName,
  p1.product_id,
  p2.product_id
FROM
  category AS c
CROSS JOIN(
  SELECT
    category_id,
    product_id
  FROM
    products
) AS p1
USING (category_id)
CROSS JOIN(
   SELECT
     category_id,
    product_id
   FROM
     products
) AS p2
USING (category_id)
WHERE
  p1.product_id != p2.product_id
GROUP BY
  c.category_id


Jest tutaj miejsce jeszcze dla optymalizacji, bo przy większej ilości produktów to może zrobić się...hmm.. wolne tongue.gif
Go to the top of the page
+Quote Post
john_doe
post
Post #7





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


nieźle to rozpykałeś. ale jak np dodam kategorie i produkty w niej to już nie działa. Nie pobiera tej nowo dodanej chyba że cos skopałem.
Jak to przerobić na 4 produkty smile.gif ?
Go to the top of the page
+Quote Post
Mchl
post
Post #8





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Trzeba by dodawać kolejne joiny i będzie toto coraz wolniejsze... Musiałbym coś innego wykombinować.
Go to the top of the page
+Quote Post
john_doe
post
Post #9





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


to by musiało być coś takiego żeby zwracało dobrze gdy dodam nową kat a w niej produkty, nie dwa a cztery <- sorki.

ale tamto wypas wykombinowałeś mimo iż nie kosi dobrze smile.gifsmile.gif
szacun
Go to the top of the page
+Quote Post
Mchl
post
Post #10





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Akurat dodanie nowej kategorii nie powinno nic przeszkadzać. Rzuca jakimś błędem, czy po prostu nie ciągnie tego co potrzeba?
Go to the top of the page
+Quote Post
john_doe
post
Post #11





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


poprostu nie ciągnie jej
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 Aktualny czas: 20.08.2025 - 15:58