2011-05-19 4 views
0

Quelqu'un peut-il me dire pourquoi je continue d'obtenir une erreur juste avant la clause where dans cette requête? Cela fonctionne très bien si je n'ai pas de clause where.Besoin d'aide combinant 2 requêtes en 1

SELECT 
    (SELECT COUNT(DISTINCT threadid) FROM thread) AS threads, 
    (SELECT COUNT(DISTINCT postid) FROM post) AS posts 
WHERE 
    post.dateline >= 1299905258 AND 
    thread.dateline >= 1299905258 

Les deux tables ont le champ de ligne de date. Est-ce un problème de syntaxe ou est-ce que j'essaie d'accomplir quelque chose qui ne peut pas être fait de cette façon?

Répondre

2

Où est la clause FROM?

Fondamentalement, lorsque vous n'avez pas de clause WHERE, vous obtenez simplement 2 colonnes. Lorsque vous définissez une clause where qui signifie que vous filtrez les résultats de certaines table .. maintenant vous avez besoin du FROM

Vous pouvez essayer cette

SELECT 
(SELECT COUNT(DISTINCT threadid) FROM thread WHERE dateline >= 1299905258) AS threads, 
(SELECT COUNT(DISTINCT postid) FROM post WHERE dateline >= 1299905258) AS posts 
+0

Ah ok. Je pensais que le fil FROM et FROM poster les retirerait. Je lisais tout faux. J'ai essayé quelque peu comme vous l'avez fait plus tôt, mais j'avais les clauses WHERE dans la mauvaise position. Cela a beaucoup plus de sens maintenant. Je vous remercie. Cela fonctionne bien maintenant. Est-il préférable de le faire de cette façon pour la vitesse ou est-ce que 2 requêtes séparées seraient réellement plus rapides? – Boofo