Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> pomoc z zapytaniem do bazy
g-4
post 2.12.2009, 01:29:56
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.08.2004

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


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 : )

Ten post edytował g-4 2.12.2009, 01:36:18
Go to the top of the page
+Quote Post
tvister
post 2.12.2009, 08:23:43
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


Zwykły join powinien wystarczyć + distinct set_id


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
g-4
post 2.12.2009, 13:12:47
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.08.2004

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


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"
Go to the top of the page
+Quote Post
maly_swd
post 2.12.2009, 13:26:56
Post #4





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


  1. SELECT FROM PRODUCTS p
  2. JOIN PRODUCTS_TO_SET pts ON pts.products_id=p.products_id
  3. GROUP BY pts.set_id


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
tvister
post 2.12.2009, 13:30:00
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 29
Dołączył: 18.08.2008

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


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.  


--------------------
Kto rano wstaje ten leje jak z cebra.
Go to the top of the page
+Quote Post
g-4
post 2.12.2009, 14:25:15
Post #6





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.08.2004

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


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

Ten post edytował g-4 2.12.2009, 14:29:30
Go to the top of the page
+Quote Post
maly_swd
post 2.12.2009, 16:06:14
Post #7





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


to left join i trzeba inaczej grupowac aby nule nie byly grupowane


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
g-4
post 2.12.2009, 19:37:51
Post #8





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 3.08.2004

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


tylko jak zrobic takie zapytanie, aby nie bralo pod uwage podczas grupowania wartosci null. caly czas szukam i nic konktretnego nie moge znalezc ; /
Go to the top of the page
+Quote Post
maly_swd
post 2.12.2009, 21:15:10
Post #9





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


poszukaj pod IF albo is null


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
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: 14.08.2025 - 10:40