Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Łączenie danych z kilku tabel
kaster
post 14.11.2017, 11:24:27
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2008

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


[php][/php]Witam,
Potrzebuję pomocy w zakresie napisania zapytania do bazy MySQL aby otrzymać konkretny wynik

Posiadam 2 tabele z jednym wspólnym elementem ID_KLIENTA

tabela_1 (LP, ID_KLIENTA, IMIĘ, NAZWISKO)
+--------+-----------------+-----------+----------------+
| LP | ID_KLIENTA | IMIĘ | NAZWISKO |
+--------+-----------------+-----------+----------------+
| 1 | 1 | Jan | Kowalski |
+--------+-----------------+-----------+----------------+
| 2 | 2 | Barbara | Kulig |
+--------+-----------------+-----------+----------------+
| 3 | 3 | Grzegorz | Krawczyk |
+--------+-----------------+-----------+----------------+

tabela_2 (LP, ID_KLIENTA, NALEŻNOŚĆ, WPŁATA)

+--------+-----------------+---------------+-----------+
| LP | ID_KLIENTA | NALEŻNOŚĆ | WPŁATA |
+--------+-----------------+---------------+-----------+
| 1 | 1 | 100 | |
+--------+-----------------+---------------+-----------+
| 2 | 2 | 100 | |
+--------+-----------------+---------------+-----------+
| 3 | 3 | 100 | |
+--------+-----------------+---------------+-----------+
| 4 | 1 | | 100 |
+--------+-----------------+---------------+-----------+
| 5 | 2 | | 50 |
+--------+-----------------+---------------+-----------+

Potrzebuję otrzymać tabelę wynikową w postaci

ID_KLIENTA, IMIĘ, NAZWISKO, SALDO
+--------------+------------+--------------+----------+
| ID_KLIENTA | IMIĘ | NAZWISKO | SALDO |
+--------------+------------+--------------+----------+
| 1 | Jan | Kowalski | 0 |
+--------------+------------+--------------+----------+
| 2 | Barbara | Kulig | 50 |
+--------------+------------+--------------+----------+
| 3 | Grzegorz | Krawczyk | 100 |
+--------------+------------+--------------+----------+

dzięki za pomoc

Ten post edytował kaster 14.11.2017, 11:28:18
Go to the top of the page
+Quote Post
trueblue
post 14.11.2017, 11:32:07
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


A potrafisz łączyć tabele i grupować dane?
Jeśli tak, to saldo będzie wyrażeniem: SUM(naleznosc+wplata) lub SUM(naleznosc)+SUM(wplata)


--------------------
Go to the top of the page
+Quote Post
kaster
post 14.11.2017, 11:38:58
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2008

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


Łączyć tabel niestety nie potrafię

Wynik z tabeli 2 wykonałem metodą
SELECT SUM(WPŁATY) - SUM(ZOBOWIĄZANIA) AS saldo FROM tabela_2 GROUP BY ID_KLIENTA
Go to the top of the page
+Quote Post
trueblue
post 14.11.2017, 11:42:37
Post #4





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Jesteś całkiem blisko.
Tu jest przykład łączenia i grupowania dwóch tabel, przy czym zamiast SUM jest użycie COUNT: https://stackoverflow.com/a/45943897
Grupujesz po id_klienta.


--------------------
Go to the top of the page
+Quote Post
kaster
post 14.11.2017, 12:21:54
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 23.07.2008

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


Dziękuję za pomoc

SELECT tb1.ID_KLIENTA as id, tb1.IMIĘ as IMIĘ, tb1.NAZWISKO as NAZWISKO, SUM(tb2.WPŁATA) - SUM(tb2.NALEŻNOŚĆ) AS saldo FROM tabela_1 tb1 LEFT JOIN tabela_2 tb2 ON tb2.ID_KLIENTA = tb1.ID_KLIENTA GROUP BY ID_KLIENTA

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: 31.07.2025 - 06:21