2011-05-19 59 views
0

任何人都可以告诉我为什么我在查询中的where子句之前不断收到错误?如果我没有任何where子句,它工作正常。需要帮助将2个查询合并为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 

这两张表都有日期栏字段。这是一个语法问题,还是我想完成一件不能这样做的事情?

回答

2

FROM条款在哪里?

基本上,当你没有WHERE子句时,它只是为你获得2列。当你所以现在定义一个where子句,这意味着你是从一些表筛选结果..你所需要的FROM

你可以试试这个

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

没关系啊。我在想FROM线程和FROM邮件会把这些拉出来。我读的都是错的。我确实尝试了一些,就像你之前所做的那样,但是我在错误的位置使用了WHERE子句。现在它变得更有意义。谢谢。现在它工作正常。 为了提高速度,以这种方式做更好还是2个单独的查询实际上会更快? – Boofo 2011-05-19 01:02:15