Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL]Jak policzyć wystąpienie takich samych rekordów?
Forum PHP.pl > Forum > Przedszkole
cent4
Mam pewne zapytanie, które listuje mi poprawnie dane z 2 tabel:
  1. SELECT m.id, m.Med, m.Kat, m.Nr_id, m.Autor, m.Tytul, m.Wydawnictwo, m.Miasto, m.Rok, m.Opis, m.Obcojezyczne, e.Nr_id, e.Med, e.Kat, e.Dostepny
  2. FROM media AS m
  3. JOIN egzempl AS e ON e.med = m.med
  4. AND e.kat = m.kat
  5. AND e.Nr_id = m.Nr_id
  6. WHERE e.Dostepny=1


Chodzi jeszcze, żeby wypisywało mi w jakiejś dodatkowej danej (powiedzmy count(*) AS lw) liczbę aktualnie dostępnych egzemplarzy jednej książki, które mają e.Dostepny=1.
Ale nie wiem jak to zrobić?
nospor
Cytat
Chodzi jeszcze, żeby wypisywało mi w jakiejś dodatkowej danej (powiedzmy count(*) AS lw)
No to dopisz to do danych w SELECT i już. Dodatkowo dodaj jeszcze GROUP BY. Więcej na temat stosowania GROUP BY znajdziesz w manualu mysql
cent4
Zrobiłem tak:
  1. SELECT m.id, m.Med, m.Kat, m.Nr_id, m.Autor, m.Tytul, m.Wydawnictwo, m.Miasto, m.Rok, m.Opis, m.Obcojezyczne, e.Nr_id, e.Med, e.Kat, e.Dostepny, count( * ) AS lw
  2. FROM media AS m
  3. JOIN egzempl AS e ON e.med = m.med
  4. AND e.kat = m.kat
  5. AND e.Nr_id = m.Nr_id
  6. WHERE e.Dostepny =1
  7. GROUP BY e.Nr_id


Tylko, że jako lw dostaję jakieś kosmiczne liczby = 70, 34 - nie wiem co on zsumuje, bo źle to zlicza...
Jakaś wskazówka?
nospor
Najwidoczniej twoje zapytanie dla danego e.Nr_id zwraca aż 70 rekordów. count jedynie to zlicza. Jeśli więc nie taka jest liczba to nie jest to wina count, a Twojego zapytania
cent4
Dzięki natchnąłeś mnie - zrobiłem.
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.