2016-07-24 23 views
0

我想做一個子類別的類別,它顯示子類別中的最新主題。顯示子類別的最新主題SQL

但是,在數據庫設置中似乎有些問題。

查詢:

$stmt = $conn->prepare("SELECT * 
FROM categories 
    LEFT JOIN subs ON subs.category_id = categories.id 
    LEFT JOIN threads ON subs.category_id = threads.subcategory_id 
WHERE threads.lastdate = 5 AND categories.id = subs.category_id AND subs.category_id = threads.subcategory_id AND 
     threads.lastdate = threads.lastdate 
GROUP BY threads.lastdate, categories.id ASC") 

數據庫:

CREATE TABLE `threads` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `subcategory_id` int(11) NOT NULL, 
    `title2` varchar(255) NOT NULL DEFAULT '', 
    `lastdate` int(11) NOT NULL, 
    `user` varchar(255) NOT NULL DEFAULT '', 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; 

替補:

CREATE TABLE `subs` (
     `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
     `title` varchar(255) DEFAULT NULL, 
     `category_id` int(60) DEFAULT NULL, 
     PRIMARY KEY (`id`) 
    ) 

ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; 

分類:

CREATE TABLE `categories` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `name` varchar(255) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; 

希望有人讓我走出火。

TJ

+0

你什麼錯誤?提供更多信息。 – Robin

+0

當我嘗試使用lastdate'5'在數據庫中創建新線程時,它仍然返回空白。我對數據庫結構不熟悉,所以也許有人可以在這裏看看誰擁有它的知識? – user6632515

回答

-1

這真的不清楚你想要什麼,以實現與查詢,以及由於某種原因,我不可以對你的問題問一個評論,但你不能使用:

SELECT * 

會同:

GROUP BY 

要麼更改select語句:

SELECT threads.lastdate, categories.id 

刪除GROUP BY子句。

Gilad已經整理了很多你的查詢,但是他目前在他的WHERE子句的結尾處有一個尾部AND以及前面提到的GROUP BY問題,不幸的是我無法評論讓他知道。

編輯 - 顯然,你可以在MySQL中使用select *同組...

+0

這個問題 - 坦率地說,讀起來很糟糕 - 並沒有得到低估,但我的回答確實存在(某些懦夫不解釋原因)?這個網站上有一些血腥的奇怪現象。 –

+0

看來我需要爲我想要的結果創建一個新的SQL。接受這個作爲答案,因爲它符合我的要求。 – user6632515