2012-04-06 4 views
1

J'ai ces 2 questions que je voudrais combiner en une seule grande question:mysql sélectionnez un alias de plusieurs tables

SELECT COUNT(*) AS ac, SUM(Views) AS vc FROM tableA 

et

SELECT COUNT(*) AS mc FROM tableB 

could'nt trouver quoi que ce soit sur ce sujet, est-ce même possible?

+1

Avez-vous des colonnes communes? – Teja

+0

Rien ne vous empêche d'exécuter les deux requêtes, la dernière étant exécutée en tant que sous-requête. –

+0

@ N.B. pouvez-vous donner un exemple sur la façon de faire cela? –

Répondre

4

Vous pouvez le faire en utilisant trois façon sous-requête:

SELECT 
(SELECT COUNT(*) FROM tableA) AS ac, 
(SELECT SUM(Views) FROM tableA) AS vc, 
(SELECT COUNT(*) FROM tableB) AS mc 

Ce n'est pas une solution très élégante, mais devrait faire ce que vous avez besoin.

+0

Merci beaucoup, ça fait le travail! –

1
SELECT 'tableA' as tablename, COUNT(*) AS count, SUM(Views) AS sum FROM tableA 
UNION 
SELECT 'tableB' as tablename, COUNT(*) AS count, 0 AS sum FROM tableB 
0

Vous pouvez créer une fonction qui retourne SELECT COUNT(*) AS mc FROM tableB et de l'utiliser dans le tableau A

CREATE FUNCTION Func1() RETURNS INTEGER 
    BEGIN 
    DECLARE Temp INTEGER; 
    SELECT COUNT(*) INTO Temp FROM tableB; 
    RETURN IFNULL(Temp, 0); 
    END; 

    SELECT COUNT(*) AS ac, SUM(Views) AS vc, Func1() as mc FROM tableA 
Questions connexes