Portál AbcLinuxu, 7. května 2025 12:56

Dotaz: SELECT COUNT s porovnáním dat jiné tabulky

2.7.2019 13:16 Martin
SELECT COUNT s porovnáním dat jiné tabulky
Přečteno: 913×
Odpovědět | Admin
Ahoj všem,

potřeboval bych menší pomoc. Mám SQL příkaz, který počítá kolikrát se data nachází v tabulce, tabulka je ale obsahová pro jinou tabulku, která určuje názvy sloupců a když se podaří název sloupce odstranit a data zapomenout smazat tak to stále počítá počet dat, viz:

SELECT param.id, COUNT(param.id) AS param_count FROM param_val param WHERE param.delete=0 GROUP BY param.id

Můžete mi poradit jak přidat podmínku, aby param.id muset existovat i v tabulce "param_row" a pak se teprve počítal do proměnné "param_count"?

Děkuji předem za odpověď.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Řešení 1× (Filip Jirsák)
2.7.2019 13:29 EtDirloth | skóre: 11
Rozbalit Rozbalit vše Re: SELECT COUNT s porovnáním dat jiné tabulky
Odpovědět | | Sbalit | Link | Blokovat | Admin
v zavislosti na pouzitej RDBMS, mohutnosti vztahu tych dvoch relacii a miery naplnenia tabuliek a indexov, bude efektivne jedno z nasledujucich

antijoin pre vela zaznamov v param_row s indexom na param_row.id (nie je efektivne na sqlite):
SELECT param.id
     , COUNT(param.id) AS param_count
   FROM param_val param
   WHERE param.delete=0
     AND EXISTS (SELECT 1
                    FROM param_row AS row
                    WHERE param.id = row.id
                )
   GROUP BY param.id
;
alebo pre malo zaznamov v param_row:
SELECT param.id
     , COUNT(param.id) AS param_count
   FROM param_val param
   WHERE param.delete=0
     AND param.id IN (SELECT row.id
                         FROM param_row AS row
                     )
   GROUP BY param.id
;
alebo ak je param_row.id unique:
SELECT param.id
     , COUNT(param.id) AS param_count
   FROM param_val param
   JOIN param_row AS row ON (param.id = row.id)
   WHERE param.delete=0
   GROUP BY param.id
;
2.7.2019 14:14 Martin
Rozbalit Rozbalit vše Re: SELECT COUNT s porovnáním dat jiné tabulky
Děkuji, tohle pomohlo :)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.