Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] grupowanie 2 tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
maciu
mam 2 tabele o identycznej strukturze

tabela1
id author
1 autor1
2 autor2
3 autor3
4 autor1

tabela2
id author
1 autor2
2 autor1
3 autor3
4 autor2

i teraz chcę wyciągnąć dane ile rekordów jest przypisanych do danego autora (kolumna author)
Dla jednej tabeli zapytanie wyglada tak
  1. SELECT author COUNT(*) AS ile FROM tabela GROUP BY author

ale nie wiem, jak zrobić to dla dwóch tabel. Próbówałem przez operacje UNION, ale wtedy nie mogłem pogrupować danych według autora.
Norbas
Jeżeli wiadomo, że autorzy występują w obu tabelkach, to w zapytaniu ma być zwykłe złączenie tabel z odpowiednim warunkiem WHERE i grupowaniem.

W przeciwnym wypadku trzeba uwzględnić sytuacje, gdy autor jest tylko w tabela1 albo tylko w tabela2, czyli dwa zapytania SELECT złączone UNION z odpowiednimi warunkami i grupowaniem po każdym poleceniu SELECT.
maciu
już sobie poradziłem
  1. SELECT author, COUNT(*) AS ile FROM (SELECT author FROM tabela1nt UNION ALL SELECT author FROM tabela2) AS tabela3 GROUP BY author ORDER BY ile
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.