SQL: Aantal records uit 2 tabellen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb 2 tabellen waaruit xxx.xxx aantal records bestaan

tabel1 en tabel2

Ik wil weten hoe ik aantal records uit 2 tabellen kon weergeven.

Kan natuurlijk als volgende


SELECT COUNT(*) FROM tabel1

SELECT COUNT(*) FROM tabel2


Kan ik dan in variabel zetten en dan optellen met elkaar
Ik wil graag in 1 query aantal records uit 2 tabellen halen.


SELECT COUNT(tabel1.id) + COUNT(tabel2.id) FROM tabel1,tabel2


Ik heb hem bijna maar ik heb deze query bestudeerd en hij loopt tabel1 na en telkens opnieuw telt hij het beide tabellen op?

Welke query moet ik uitvoeren om het aantal records uit 2 tabellen te krijgen?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:57
-> PRG

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

Verwijderd

SELECT COUNT(tabel1.*) + COUNT(tabel2.*) as `totaal` FROM tabel1, tabel2

[ Voor 187% gewijzigd door Verwijderd op 09-01-2009 14:14 ]


Acties:
  • 0 Henk 'm!

  • daniëlpunt
  • Registratie: Maart 2004
  • Niet online

daniëlpunt

monkey's gone to heaven

SQL:
1
SELECT COUNT(tabel1.id) + COUNT(tabel2.id) as rowCount FROM tabel1,tabel2

Acties:
  • 0 Henk 'm!

  • Motrax
  • Registratie: Februari 2004
  • Niet online

Motrax

Profileert

Je bent op zoek naar:
SQL:
1
UNION

hier mee kan je het e.e.a. combineren :)

Hmmm wacht... je wilt twee resultaten bij elkaar optellen.

[ Voor 26% gewijzigd door Motrax op 09-01-2009 14:13 ]

☻/
/▌
/ \ Analyseert | Modelleert | Valideert | Solliciteert | Generaliseert | Procrastineert | Epibreert |


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

yikes
Die van danielpunt en maxi-pilot geeft een carthetisch produkt, niet doen.
Die van Motrax doet een impliciete distinct, dat wil je ook niet.

Ik zou het in de aanroepende programmeertaal oplossen.

[ Voor 3% gewijzigd door justmental op 09-01-2009 14:16 ]

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • freak-ish
  • Registratie: December 2008
  • Laatst online: 15-01 17:16
danielpunt's solution should work.

UNION zet alleen de uitkomsten onder elkaar, daarnaast zou je dan ook nog UNION ALL moeten gebruiken anders, indien de count van beide tabellen 't zelfde zijn maar 1 uikomst (DISTINCT)

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:57
Verwijderd schreef op vrijdag 09 januari 2009 @ 14:11:
SELECT COUNT(tabel1.*) + COUNT(tabel2.*) as `totaal` FROM tabel1, tabel2
Volgens mij gaat dit resulteren in een scalair product :P

Trouwens, die query parsed zelfs niet in SQL Server.

Wat je kan doen, is dit:
code:
1
2
select count(*) from tabel1;
select count(*) from tabel2;

in één batch te sturen, dan krijg je 2 resultsets terug (met één roundtrip), en lees je de resultaten uit + tel ze op.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

eventueel kun je als je dbms het ondersteunt zoiets doen:
SQL:
1
2
3
select a.aantal1 + b.aantal2
from (select count(*) as aantal1 from tabel1) a
, (select count(*) aantal2 from tabel2) b

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • winkbrace
  • Registratie: Augustus 2008
  • Laatst online: 24-08 15:17
gewoon een select in de select clause:

In Oracle werkt dit. Wellicht dat je geen dual kunt gebruiken in MySQL. Da kun je altijd een willekeurige tabel nemen met LIMIT 1:
SQL:
1
2
select (select count(*) from table1) + (select count(*) from table2) as totaal 
from   dual

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor jullie snelle reactie's

Ik kan het niet in aanroependeprogrammeer taal doen ik moet het namelijk ik moet echt in SQL.

@WHoami die 2 methodes kan niet zie mijn eerste post ik moet het in 1 query doen.

@Justmental jou query heb ik uitgevoerd maar krijg foutmelding
ERROR: subquery in FROM must have an alias

@BazzyPsychoNut indedaad dual werkt bij MySQL niet

Acties:
  • 0 Henk 'm!

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op vrijdag 09 januari 2009 @ 14:42:
@Justmental jou query heb ik uitgevoerd maar krijg foutmelding
ERROR: subquery in FROM must have an alias
Ik heb hem aangepast.

Who is John Galt?


Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op vrijdag 09 januari 2009 @ 14:42:


@BazzyPsychoNut indedaad dual werkt bij MySQL niet
Logisch aangezien dual iets specifiek voor Oracle is. Voor MySQL heb je het niet nodig.


SQL:
1
select (select count(*) from table1) + (select count(*) from table2) as totaal 

Werkt in MySQL 4.1.22

[ Voor 26% gewijzigd door LuCarD op 09-01-2009 14:49 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Noork
  • Registratie: Juni 2001
  • Niet online
BazzPsychoNut schreef op vrijdag 09 januari 2009 @ 14:22:
gewoon een select in de select clause:

In Oracle werkt dit. Wellicht dat je geen dual kunt gebruiken in MySQL. Da kun je altijd een willekeurige tabel nemen met LIMIT 1:
SQL:
1
2
select (select count(*) from table1) + (select count(*) from table2) as totaal 
from   dual
Werkt hier goed op MySql 5.0.67.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hartelijk bedank LuCarD het werkt !!
Pagina: 1