Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Problem z konstrukcją zapytania MysSQL
krzesik
post 26.05.2017, 18:32:27
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


Witam, mam zapytanie :
  1. SELECT
  2. id_book,
  3. imie_nazwisko,
  4. info,
  5. str_start,
  6. str_end
  7. FROM book WHERE nr='$obj[nr]'


dostaję wynik na jaki oczekuję, ale muszę do kolejnej krotki wstawić ilość rekordów spełniających warunek book.id_book=tabela2.id_book

chciałem zrobić tak,

..............
  1. LEFT JOIN tab2 ON book.id_book=tab2.id_book


ale wtedy "mnoży mi" rekordy z pierwszej tabeli
Go to the top of the page
+Quote Post
nospor
post 26.05.2017, 21:14:04
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Bo tak dziala JOIN. Nie mnozy, a poprostu laczy tyle razy ile warunek sie spelnia.
Uzyj GROUP BY oraz COUNT


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
krzesik
post 27.05.2017, 12:03:05
Post #3





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

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


OK doszedłem do tego że mam dwa zapytania
  1. SELECT
  2. id_book,
  3. imie_nazwisko,
  4. info,
  5. str_start,
  6. str_end
  7. FROM book WHERE nr='$obj[nr]'


i drugie

  1. SELECT count(id_book) AS ile FROM tab2 GROUP BY id_book


JAK TO TERAZ POŁĄCZYĆ?
Go to the top of the page
+Quote Post
bostaf
post 28.05.2017, 11:44:11
Post #4





Grupa: Zarejestrowani
Postów: 374
Pomógł: 79
Dołączył: 6.04.2010
Skąd: Ostrów Wielkopolski

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


Trzeba to co już zrobiłes i to Co ci podpowiedział nospor poskładać w odpowiedniej kolejności. A ta kolejność jest w manualu.

Przeanalizuj sobie to:
  1. SELECT
  2. book.id_book
  3. count(tab2.id_book)
  4. FROM book
  5. LEFT JOIN tab2 ON tab2.id_book = book.id_book
  6. WHERE book.nr = "$obj[nr]"
  7. GROUP BY book.id_book

i podokładaj inen pola.
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: 6.07.2025 - 23:27