J'essaie d'aller chercher la somme de plusieurs comptes dans une requête: Je manque quelque chose ici. Je reçois une erreur de syntaxe. P> p>
4 Réponses :
SELECT ( SELECT COUNT(*) FROM comments )
+ ( SELECT COUNT(*) FROM tags )
+ ( SELECT COUNT(*) FROM search )
Oui, exactement. Remarque: à Oracle, vous devez ajouter «de Dual» à cette syntaxe.
SELECT (
SELECT COUNT(*)
FROM comments
) +
(
SELECT COUNT(*)
FROM tags
) +
(
SELECT COUNT(*)
FROM search
)
Un de plus (non sûr si supporté avec MySQL, cependant - fonctionne dans SQL Server):
SELECT SUM(Counts) FROM (SELECT COUNT(*) AS Counts FROM COMMENTS UNION ALL SELECT COUNT(*) FROM Tags UNION ALL SELECT COUNT(*) FROM Search) s
Curieux - Quels sont les avantages / inconvénients de chacun des vôtres et des SQLS de réponse acceptés? Est-il meilleur en termes de performance? Autre chose?
À Liao: Exécutez l'analyseur de la requête et voyez ce que cela dit. Ils peuvent être synonymes.
Très agréable. +1 pour l'élégance de la déclaration SQL.
Ils devraient être les mêmes; J'aime les miens parce que c'est beaucoup moins de frappe. :RÉ
@Matt: ah, oui! Un homme après mon propre coeur - paresseux!
SELECT SUM(ThisCount)
FROM (
SELECT COUNT(*) AS ThisCount
FROM comments
UNION ALL
SELECT COUNT(*) AS ThisCount
FROM tags
UNION ALL
SELECT COUNT(*) AS ThisCount
FROM search
)
@ N8WRL: Battez-vous de quelques minutes.
@Ken: Merci pour ça. Ce que j'étais vraiment après la syntaxe qui m'a permis de se référer à la première colonne de la somme () quel que soit son nom. Pas de joie.