[MySQL] SELECT id, fld, tableB_name, (SELECT count(*) FROM tableB_name) AS count FROM tableA |
[MySQL] SELECT id, fld, tableB_name, (SELECT count(*) FROM tableB_name) AS count FROM tableA |
14.04.2021, 13:18:50
Post
#1
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) |
Witam,
Chciałbym wykonać zliczanie rekordów za pomocą jednego zapytania, gdzie: - pobieram rekordy z Tabeli A - zliczam rekordy w Tabeli B, gdzie nazwa Tabeli B jest zawarta w rekordzie kolumny Tabeli A Coś na zasadzie:
Czyli w TableA, w kolumnie tableB_name przechowuje nazwę tabeli, której potem używam przy zliczaniu. Oczywiście powyższe zapytanie generuje błąd. Czy jest w ogóle opcja aby coś takiego wykonać w jednym zapytaniu, bez wrzucania zliczania wewnątrz pętli na podstawie pobranego rekordu? Ten post edytował jol.us_ 14.04.2021, 13:24:38 -------------------- run Forest run ...
|
|
|
15.04.2021, 00:10:45
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) |
Zwykły JOIN powinien załatwić sprawę.
-------------------- |
|
|
15.04.2021, 08:18:29
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Nie jest to możliwe w jednym zapytaniu.
Jeśli przechowujesz nazwy tabel jako wartości kolumny w innej tabeli, to być może jest coś nie tak ze strukturą bazy. Domyślam się, że każda z tych tabel ma taką samą strukturę, a zostały podzielone na odrębne ze względu na jakieś archiwizowanie danych w określonych odstępach czasu. Możliwe jest jedno zapytanie, ale wygenerowane w PHP: - pobranie nazw tabel, - wygenerowanie jednego zapytania opartego o UNION i pobrane nazwy tabel. -------------------- |
|
|
15.04.2021, 09:50:53
Post
#4
|
|
Grupa: Zarejestrowani Postów: 132 Pomógł: 0 Dołączył: 10.12.2003 Skąd: Kraków Ostrzeżenie: (0%) |
Nie jest to możliwe w jednym zapytaniu. Jeśli przechowujesz nazwy tabel jako wartości kolumny w innej tabeli, to być może jest coś nie tak ze strukturą bazy. Domyślam się, że każda z tych tabel ma taką samą strukturę, a zostały podzielone na odrębne ze względu na jakieś archiwizowanie danych w określonych odstępach czasu. Możliwe jest jedno zapytanie, ale wygenerowane w PHP: - pobranie nazw tabel, - wygenerowanie jednego zapytania opartego o UNION i pobrane nazwy tabel. Tak też myślałem, że to niemożliwe. Struktura może jest dziwna, ale raczej prawidłowa. Po prostu dynamicznie tworzę/usuwam table bazy danych o różnych strukturach, a listę tych tabel wraz z ich właściwościami i innymi informacjami trzymam w oddzielnej tabeli. To wynika ze specyfiki projektu i tego, że nie mogę trzymać wszystkich rekordów w obrębie jednej tabeli i wiązać jej np. z kluczem obcym umieszczonym w kolumnie. W tym przypadku rekordy są rozdzielane na różne tabele, a kluczem obcym jest po prorstu nazwa tabeli. Ten post edytował jol.us_ 15.04.2021, 09:56:14 -------------------- run Forest run ...
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 22:27 |