Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] Zapytanie
djbarca
post
Post #1





Grupa: Zarejestrowani
Postów: 231
Pomógł: 1
Dołączył: 22.04.2007
Skąd: Rypin

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


witam. potrzebuje waszej pomocy. mam 2 tabele przykladowo

TabelaA
id
marka_auta


TabelaB
id
id_tabeliA
model_auta
dostępność

przykladowo. wrzucam

do tabeliA

1, opel
2, VW

do tabeliB

1, 1, corsa, dostępny
2, 1, insignia, zajęty

i teraz chce zliczyć wszystkie marki aut(tabela A) pod warunkiem ze z (tabeliB) wszystkie modele tego auta są dostępne czyli jeśli mam markę opel. w niej np 2 dostępne modele to jeśli wszystkie są dostępne to zliczenie kategorii opla traktowane jest jako 1. a jeśli jakiś model tego auta niedostępny wtedy cala marka jest 0(do sumowania). trochę to bez sensu ale tak będzie prościej to przedstawić chyba (IMG:style_emoticons/default/wink.gif)

albo bardziej obrazkowo (IMG:style_emoticons/default/wink.gif) "Mamy halę w której znajdują się skrzynie z jabłkami na sprzedaż . Jeśli chociaż jedno jabłko w danej skrzyni jest zepsute to cała skrzynia jest do wyrzucenia. Policz ilość skrzyń które uda się sprzedać"

Ten post edytował djbarca 4.02.2012, 12:58:13
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

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


W ogóle nie trzeba łączyć A, wszystko co trzeba mamy w B, przecież wystarczy policzyć różne id_tabeliA z B zamiast liczyć coś z A.

  1. SELECT COUNT(id_tabeliA) FROM tabelaB
  2. GROUP BY id_tabeliA
  3. HAVING MAX(dostepnosc) = 'dostepny'

Przy indeksie na id_tabeliA będzie śmigać nawet na dużej bazie.

Ten post edytował pmir13 4.02.2012, 15:46:28
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 22:40