Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Problem z konstrukcją zapytania
krzesik
post
Post #1





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

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


Witam,
mam dwa zapytania, jak je połączyć aby otrzymać jedną tabelę z wynikami?

  1.  
  2. SELECT month(DataSpr) AS miesiac, (IloscZam) AS IloscZaml, (IloscTow) AS IloscTow FROM `tab1` GROUP BY month(DataSpr) ORDER BY FIELD(`miesiac`,'4','5','6','7','8','9','10','11','12','1','2','3'))
  3.  
  4. oraz
  5.  
  6. SELECT month(DataZak) AS miesiac, (IloscRez) AS IloscRez FROM tab2 GROUP BY month(DataZak) ORDER BY FIELD(`miesiac1`,'4','5','6','7','8','9','10','11','12','1','2','3'))


polem łączącym powinny być daty
Go to the top of the page
+Quote Post
Tomplus
post
Post #2





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

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


Użyj UNION, tylko ilość pól w SELECT musi być taka sama.
Go to the top of the page
+Quote Post
trueblue
post
Post #3





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

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


Należałoby utworzyć tabelę-kalendarz i spiąć obydwa zapytania jako podzapytania z LEFT JOIN, bo jakkolwiek nie spiąłbyś tylko tych dwóch w MySQL, to otrzymasz brakujące wartości miesięcy (miesiące z jednego i drugiego zapytania nie muszą się pokrywać).
Ewentualnie emulacja OUTER JOIN: https://kawalekkodu.pl/gul-gul-na-full-czyl...er-join-w-mysql i na wyniku korzystać z COALESCE.

Ale to świadczy o tym, że prawdopodobnie baza jest niepoprawnie skonstruowana.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 03:31