Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: pomoc z zapytaniem do bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
g-4
witam,

mam nastepujaca baze:

PRODUCTS
- products_id
- products_name
- itd.


PRODUCTS_TO_SET
- products_id
- set_id


nie moge poradzic sobie z zapytaniem, aby wyciagnac wszystkie produkty z bazy tak, by produkty, ktore znajduja sie w "product_to_set" i posiadaja ten sam "set_id" zostal pobrany tylko jeden.


obencie wyswietlanie mam napisane w taki sposob:

  1. while ($listing = $listing_query->fetch_array(){
  2. if (!in_array($listing['set_id'], $sets_array)) {
  3. ...
  4. }
  5.  
  6. if ($listing['set_id'] != '')
  7. $sets_array[] = $listing['set_id'];
  8.  
  9. }



np. w bazie mam:

PRODUCTS:
products_id products_name
1 xyz
2 xyz
3 xyz
4 xyz
5 xyz
6 xyz


PRODUCTS_TO_SET:
products_id set_id
2 1
5 1
3 3
4 3


i zapytanie powinno wyswietlic dane:

products_id
1
2
3
6

pomijajac 4, 5 poniewaz wystarczy tylko 2, 3 ( po jednej pozycji z danego set_id)


mam nadzieje, ze napisalem w miare zrozumiale to co chcialbym osiagnac : )
tvister
Zwykły join powinien wystarczyć + distinct set_id
g-4
jesli moglbym Cie prosic o jakis kod zapytania, to byl bym bardzo wdzieczny.
poniewaz, kombinuje na rozne sposoby i nic mi nie wychodzi, a mianowicie pomija mi te produkty ktore nie naleza do "set_id"
maly_swd
  1. SELECT FROM PRODUCTS p
  2. JOIN PRODUCTS_TO_SET pts ON pts.products_id=p.products_id
  3. GROUP BY pts.set_id
tvister
Jak zwykle freestyle bo nie mam jak sprawdzić.

  1.  
  2. SELECT DISTINCT pts.set_id, pts.product_id FROM products p JOIN products_to_set pts ON (p.product_id = pts.product_id)
  3.  
  4. lub
  5.  
  6. SELECT pts.set_id, pts.product_id FROM products p JOIN products_to_set pts ON (p.product_id = pts.product_id) GROUP BY pts.set_id
  7.  
g-4
dokladnie takie same zapytania testowalem i zwaracaj mi tylko te produkty ktore naleza do "products_to_set", a potrzebuje, aby wyswietlil mi tez te produkty, ktore nie naleza do products_to_set
maly_swd
to left join i trzeba inaczej grupowac aby nule nie byly grupowane
g-4
tylko jak zrobic takie zapytanie, aby nie bralo pod uwage podczas grupowania wartosci null. caly czas szukam i nic konktretnego nie moge znalezc ; /
maly_swd
poszukaj pod IF albo is null
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.