![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam taki problem ze zliczaniem rekordów otóż, napisałem takie zapytanie:
Zapytanie zlicza mi ile jest w bazie utworzonych linków, kategorii oraz tekstów ale problem się pojawia kiedy w bazie danych mam powiedzmy 3 kategorie 1 link i 0 tekstów, wtedy zwraca mi zera w amt_links, amt_texts, amt_categories. Wystarczy, że jedna z tabel nie posiada rekordów, to we wszystkich innych również jest zwracane 0 rekordów. Jak przekształcić to zapytanie, żeby działało nawet jak w jednej z tabel nie ma rekorów? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Wykonaj te zliczenia poprzez UNION. Wtedy problem powinien zniknąć. Kolejne zliczenia otrzymasz w osobnych wierszach, a nie (jak teraz) kolumnach.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 10.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
OK wszystko działa wielkie dzięki, nawet nie wiedziałem, że w SQL istnieje coś takiego jak UNION
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 60 Pomógł: 5 Dołączył: 28.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Pierwsze pytanie, czy DISTINCT jest tu potrzebny? Po nazwach sądzę, że są to primary keys, one już są z definicji distinct.
Jeśli ma być w wierszach można też tak
a jeśli w kolumnach, za pomocą subqueries
co nie znaczy, że UNION jest zły ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 7.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Zacznijmy od tego, że select jaki dał Karas! wskazuje, że jego baza danych nie jest bazą danych a wyłącznie zbiorem liści, dlatego ma null-e. Jakby baza była spójna miała klucze obce to wystarczy left join i problemu nie będzie. Zatem proponuje poprawić schemat bazy by zdobywać lepsze nawyki ![]() pozdrawiam munky |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.06.2025 - 14:24 |