Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łączenie 2 tabel i podliczenie
honciv
post 28.12.2017, 11:21:03
Post #1





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

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


Witam serdecznie,

jestem początkujący i zmagam się z takim oto zadaniem:

z tabel, ze strony:
https://www.w3schools.com/sql/trysql.asp?fi...ysql_select_all

muszę wydobyć i pokazać ilu i jakich klientów obsługiwała Nancy?

z góry dziękuje za pomoc smile.gif

Ten post edytował honciv 28.12.2017, 15:06:51
Go to the top of the page
+Quote Post
Tomplus
post 28.12.2017, 23:12:52
Post #2





Grupa: Zarejestrowani
Postów: 1 828
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

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


Kod
SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID LEFT JOIN [Employees] e ON e.EmployeeID = 1
Go to the top of the page
+Quote Post
mmmmmmm
post 29.12.2017, 08:15:05
Post #3





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID INNER JOIN [Employees] e ON e.EmployeeID = o.EmployeeID WHERE e.EmployeeID=1
Go to the top of the page
+Quote Post
honciv
post 29.12.2017, 09:41:51
Post #4





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

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


Cytat(Tomplus @ 28.12.2017, 23:12:52 ) *
Kod
SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID LEFT JOIN [Employees] e ON e.EmployeeID = 1


ale w tej regule pojawiają mi się wszystkie EmployeeID, a nie tylko 1 sad.gif

Cytat(mmmmmmm @ 29.12.2017, 08:15:05 ) *
  1. SELECT c.CustomerName, o.*, e.FirstName Employee FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID INNER JOIN [Employees] e ON e.EmployeeID = o.EmployeeID WHERE e.EmployeeID=1


dziękuję bardzo, a czy dało by radę to podliczyć - dowiedziałem się że wynikiem mojego zapytania ma być ilość klientów obsłużonych przez Nancy
Go to the top of the page
+Quote Post
Neutral
post 29.12.2017, 23:09:03
Post #5





Grupa: Zarejestrowani
Postów: 286
Pomógł: 46
Dołączył: 10.01.2016

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


  1. SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


Coś takiego chyba powinieneś napisać.

Ten post edytował Neutral 29.12.2017, 23:09:35
Go to the top of the page
+Quote Post
mmmmmmm
post 29.12.2017, 23:12:58
Post #6





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


  1. SELECT Count(DISTINCT c.CustomerID) AS ilosc FROM [Orders] o INNER JOIN [Customers] c ON c.CustomerID = o.CustomerID INNER JOIN [Employees] e ON e.EmployeeID = o.EmployeeID WHERE e.EmployeeID=1
Go to the top of the page
+Quote Post
honciv
post 4.01.2018, 11:26:53
Post #7





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

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


Cytat(Neutral @ 29.12.2017, 23:09:03 ) *
  1. SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


Coś takiego chyba powinieneś napisać.


wynik jest ok - czyli 23, a czy mogę prosić o kod z takim wynikiem, ale żeby w kodzie i wyniku oprócz liczby 23 widoczna była Nancy?

z góry dziękuję smile.gif
Go to the top of the page
+Quote Post
nospor
post 4.01.2018, 11:31:18
Post #8





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




NIe przesadzasz z lekka? Ciezko dopisac przy SELECT kolejna kolumne, ktrora chcesz wyswietlic?

SELECT count(*), posts.user_id FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


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

"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
honciv
post 4.01.2018, 11:44:30
Post #9





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

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


Cytat(nospor @ 4.01.2018, 11:31:18 ) *
NIe przesadzasz z lekka? Ciezko dopisac przy SELECT kolejna kolumne, ktrora chcesz wyswietlic?

SELECT count(*), posts.user_id FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;


Przepraszam, dopiero się uczę, analizuję każdą pomoc od forumowiczów - mam nadzieję że będę mógł też kiedyś pomagać.

Niestety ale podany przez Ciebie kod nie działa sad.gif
Go to the top of the page
+Quote Post
nospor
post 4.01.2018, 11:56:52
Post #10





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




A "nie dziala" objawia sie czym?


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

"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
honciv
post 4.01.2018, 12:27:53
Post #11





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

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


po wpisaniu kodu od Ciebie nie wyskakuje m żaden wynik sad.gif

Sorry za mój brak wiedzy sad.gif
Go to the top of the page
+Quote Post
Toshikatsu
post 4.01.2018, 12:39:36
Post #12





Grupa: Zarejestrowani
Postów: 26
Pomógł: 3
Dołączył: 18.10.2017

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


To nie kwestia braku wiedzy, a braku chęci wyjaśnienia problemu.
"Nie działa" "Nie wyskakuje" to mało dokładne informacje.

Najlepiej by było jakbyś pokazał co robisz, bo to co dodał nospor do zapytania nie miało prawo go "zepsuć".
Go to the top of the page
+Quote Post
mmmmmmm
post 4.01.2018, 12:53:29
Post #13





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


Przecież on W OGÓLE nie ma takiej tabeli jak posts smile.gif
Go to the top of the page
+Quote Post
nospor
post 4.01.2018, 13:40:06
Post #14





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




@mmmmmmm czyli sugerujesz ze kolega zamienil to zapytanie
SELECT count(*) FROM posts WHERE posts.user_id = 'Nancy' GROUP BY posts.user_id;
na zapytanie z poprawna tabela zamiast posts ale mojej wersji juz nie zamienil spowrotem na poprawna tabele? Myslisz ze zrobilby cos tak niegodziwego? wink.gif


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

"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
honciv
post 4.01.2018, 14:06:59
Post #15





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

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


nie rozumiem sad.gif
nic nie zmieniałem
Go to the top of the page
+Quote Post
nospor
post 4.01.2018, 14:12:13
Post #16





Grupa: Moderatorzy
Postów: 36 440
Pomógł: 6290
Dołączył: 27.12.2004




Tego tez nie rozumiesz
Cytat
"Nie działa" "Nie wyskakuje" to mało dokładne informacje.

Najlepiej by było jakbyś pokazał co robisz

?


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

"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
Toshikatsu
post 4.01.2018, 14:28:32
Post #17





Grupa: Zarejestrowani
Postów: 26
Pomógł: 3
Dołączył: 18.10.2017

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


Nie chciałbym tutaj wszystkiego robić za kolegę, ale najwyraźniej przekopiował inny select, a inny zacytował w poście.

Generalnie to czego potrzebujesz, honciv to powinno być to:
  1. SELECT count(*), e.FirstName FROM Orders o JOIN Employees e ON o.EmployeeID = e.EmployeeID WHERE e.FirstName = "Nancy"


Aczkolwiek problem przy takich rzeczach wymagałby nieco więcej pracy własnej i chęci rozwiązania takiej sytuacji. Dobrym ćwiczeniem byłoby na pewno prześledzenie i spróbowanie wytłumaczyć samemu sobie(bądź nam w poście - a co!), co to zapytanie robi smile.gif
Go to the top of the page
+Quote Post
honciv
post 5.01.2018, 09:09:13
Post #18





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

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


Cytat(Toshikatsu @ 4.01.2018, 14:28:32 ) *
Nie chciałbym tutaj wszystkiego robić za kolegę, ale najwyraźniej przekopiował inny select, a inny zacytował w poście.

Generalnie to czego potrzebujesz, honciv to powinno być to:
  1. SELECT count(*), e.FirstName FROM Orders o JOIN Employees e ON o.EmployeeID = e.EmployeeID WHERE e.FirstName = "Nancy"


Aczkolwiek problem przy takich rzeczach wymagałby nieco więcej pracy własnej i chęci rozwiązania takiej sytuacji. Dobrym ćwiczeniem byłoby na pewno prześledzenie i spróbowanie wytłumaczyć samemu sobie(bądź nam w poście - a co!), co to zapytanie robi smile.gif


Witam,
bardzo dziękuję, o to mi chodziło, w weekend siadam przy wszystkich przykładach od Was i będę rozgryzał każdy krok po kroku, bardzo dziękuję za pomoc smile.gif
Miłego dnia
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: 28.03.2024 - 19:53