Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Łączenie dwóch tabel, grupowanie i zlicznie rekordów
art998
post 23.02.2018, 12:07:24
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.10.2016

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


Łączenie dwóch tabel, grupowanie i zlicznie rekordów z jednej kolumny

tabela A
id | data1 | name |
1 | 2018-01-01 | AAA |
2 | 2018-01-02 | BBB |
3 | 2018-01-02 | AAA |
4 | 2018-01-03 | AAA |

założenie tabela A: zgrupować kolumnę ‘name’ aby otrzymać 2 rekordy AAA oraz BBB

tabela B
id | data2 |
1 | 2018-01-01 |
2 | 2018-01-01 |
3 | 2018-01-01 |
4 | 2018-01-02 |
5 | 2018-01-02 |
6 | 2018-01-03 |

założenie tabela B: zgrupować i zliczyć kolumnę ‘data2’ aby otrzymać 3 rekordy
2018-01-01 – 1 rekord
2018-01-02 – 1 rekord
2018-01-03 – 1 rekord

zapytanie:
  1. SELECT A.name , count( B.data2 ) AS policz, B.kod
  2. FROM tabela_A AS A
  3. LEFT JOIN tabela_B AS B ON A.data1 = B.data2
  4. WHERE A.data1 = B.data2
  5. GROUP BY A.name


zapytanie zwraca:
id | NAME | policz |
1 | AAA | 6 |
2 | BBB | 2 |


Cel : otrzymać zgrupowana kolumnę ‘name’ tabeli A oraz zgrupowane i zliczone rekordy kolumny ‘data2’ z tabeli B

Wynik powinien być:

id | NAME | policz |
1 | AAA | 3 |
2 | BBB | 1 |

Jak można osiągnąć taki rezultat?
Go to the top of the page
+Quote Post
b4rt3kk
post 23.02.2018, 17:35:19
Post #2





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Jeśli dobrze zrozumiałem, to dołóż DISTINCT:

  1. SELECT A.name , count(DISTINCT B.data2 ) AS policz, B.kod
  2. FROM tabela_A AS A
  3. LEFT JOIN tabela_B AS B ON A.data1 = B.data2
  4. WHERE A.data1 = B.data2
  5. GROUP BY A.name


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
art998
post 23.02.2018, 17:51:28
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 14.10.2016

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


Cytat(b4rt3kk @ 23.02.2018, 17:35:19 ) *
Jeśli dobrze zrozumiałem, to dołóż DISTINCT:

  1. SELECT A.name , count(DISTINCT B.data2 ) AS policz, B.kod
  2. FROM tabela_A AS A
  3. LEFT JOIN tabela_B AS B ON A.data1 = B.data2
  4. WHERE A.data1 = B.data2
  5. GROUP BY A.name



...zrozumiałeś bardzo dobrze, działa tak jak oczekiwałem
DZIĘKI WIELKIE ...Brawo Ty, pomogłeś mi nie pierwszy raz Lkingsmiley.png

Go to the top of the page
+Quote Post
StevDefs
post 10.09.2019, 18:31:25
Post #4





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 22.08.2019

Ostrzeżenie: (10%)
X----


Acheter Xenical Orlistat En Ligne generic viagra Brand Name Cialis From Lilly

Cheap Cialis Online Legit India cheap cialis online Buy Prevacid Solutab 15 Mg

Healthy Man Viagra Phone Number Kamagra Super generic cialis from india Viagra Gro?En Nolvadex Vidal

Amoxicillin Resistance Children Tonsillar mail order levitra 90 day supply Cheap Online Levitra

Acticin Pills Propecia Hilft Levitra Online Paypal priligy de 30 o 60 Viagra Description Kopa Lasix

Viagra Prescription Price Propecia Pharmacie Viagra Receta Venta viagra online Cialis Viagr Canada Photo Of Amoxicillin Kamagra Is It Legal In Uk

Load Amoxicillin Where Can I Purchase Cialis Pills levitra prices Amoxicillin 500 Mg For Dogs

Buying Doxycycline Dutasteride Internet Cephalexin Dogs Pain viagra Tomar Cialis Y Aspirina Canadian Drug Store
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: 18.04.2024 - 12:43