Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Jak powinienem skonstruować zapytanie do 2 tabel?
Forum PHP.pl > Forum > Przedszkole
phpamator
Witajcie,
Mam dwie tabele:
tabela1 i tabela2
w obu tabelach te same kolumny:
id, sku, qty, name
chciałbym pozbierać i policzyć ilości w/g sku w tabeli1 pozbierać i policzyć według sku w tabeli2 i na koniec zsumować
oto co wymyśliłem:
  1. SELECT table1.sku, table1.qty AS sku_qty_table1, table2.sku AS sku_qty_table2, (table1.qty+table2.qty) AS total_qty
  2. FROM `table1` INNER JOIN `table2` ON table1.sku=table2.sku ORDER BY table1.sku


w wyniku tego zapytania dostaję coś co nijak nie oddaje faktycznych ilości i wygląda:

sku Ascending 1 sku_qty_table1 sku_qty_table2 total_qty
1 1 1 5
1 99 1 103
1 1 1 2
1 99 1 100
2 4 2 10

Jak powinno wyglądać zapytanie żeby działało i zliczało prawidłowo?

nospor
Nie wiem jak inni ale ja probuje i probuje ale nie moge zrozumiec o co ci chodzi.
Pokaz moze przykladowe dane z obu tabel i oraz wynik koncowy jaki chcesz uzyskac
Kshyhoo
  1. SELECT (SELECT COUNT(*) FROM tabela1)+(SELECT COUNT(*) FROM tabela2) AS suma;

(*) chyba, że Nospor powie inaczej...
phpamator
Nie wiem jak prościej opowiedzieć czego oczekuję od zapytania, otóż jak wspominałem mam dwie tabele i w każdej tabeli znajdują się wielokrotnie te same SKU,
chcę zliczyć sku z tabeli 1, sku z tabeli 2 i wyswietlić w osobnej kolumnie jako zsumowane
czyli powinno to wyglądać mniej więcej tak:
  1. tabela 1
  2. sku qty
  3. 1 1
  4. 2 1
  5. 3 1
  6. 2 2
  7. 2 2
  8.  
  9. tabela
  10. sku qty
  11. 1 1
  12. 2 1
  13. 3 1
  14. 2 2
  15. 2 2
  16. 3 3
  17. 3 3
  18.  
  19. powiedzmy że tak to wygląda.
  20.  
  21. SKU | tabela1 | tabel2 | suma z tabeli1/2
  22. 1 | 1 | 1 | 2
  23. 2 | 5 | 3 | 8
  24. 3 | 1 | 7 | 8





@kshyhoo
po wykonaniu twojego zapytania dostałęm "6" co zdecydowanie nie jest prawidłowym wynikiem zliczania ponieważ w tabeli1 sku = 1 powinno dać conajmniej 5

ale oczywiście dziękuję za wkład
nospor
No teraz wiadomo o co chodzi.

A nie mozesz poprostu zrobic dwoch zapytan kazde do innej tabeli i kazde z COUNT oraz GROUP BY? To zrobi co ma zrobic a potem sobie w formie tabelki mozesz na stronie wyswietlic jak chcesz
Pyton_000
Kod
SELECT
  table1.sku,
  SUM(table1.qty) + SUM(table2.qty) AS total_qty
FROM `table1`
  JOIN `table2` ON table1.sku = table2.sku
GROUP BY table1.sku
ORDER BY table1.sku
phpamator
Cytat(Pyton_000 @ 8.03.2018, 15:03:34 ) *
Kod
SELECT
  table1.sku,
  SUM(table1.qty) + SUM(table2.qty) AS total_qty
FROM `table1`
  JOIN `table2` ON table1.sku = table2.sku
GROUP BY table1.sku
ORDER BY table1.sku


super Python ale dlaczego w wyniku dostaję sku2 x2 ?
powinienem dostać 105 a dostaję 210 ?

@nospor
jako, że staram się opanować coś więcej niż tylko proste zapytania dlatego chciałem to zrobić w jednym, może w końcu zrozumiem jak to robić.
aras785
podrzuć nam projekt z http://sqlfiddle.com/ a będzie nam łatwiej pomóc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.