2012-10-19 17 views
0

我有兩個MySQL查詢:如何兩位內線/分類表MYSQL SELECT查詢組合成一個

1) "SELECT ID,post_title,post_category,post_perma FROM ".TBL_POSTS." 
    WHERE published='1' AND page='0' ORDER BY ID DESC LIMIT 10" 

2) "SELECT p.cat_ID,p.cat_nicename FROM ".TBL_CATEGORIES." n, ".TBL_CATEGORIES." p 
    WHERE n.lft BETWEEN p.lft AND p.rgt AND n.cat_ID='".post_category."' ORDER BY p.lft 

首先查詢選擇職位,然後通過post_category秒選擇類別的路徑,請注意,post_category會從第一個查詢取指post_category在兩個表共同..第一表格它被命名爲post_category和第二它是cat_ID

現在我在foreach循環這是不好的運行它。另外有一點要注意的是第二個查詢也將返回數組和一個數組應該對應post_category

任何SQL高手可以幫我嗎?

許多感謝名單

+0

請你詳細說明表結構? – diEcho

+0

我試過..但沒有能夠得到想要的結果..你能告訴我例如嗎? – user1713941

+0

請編輯與您嘗試過的問題?我試圖通過@Danny Hearnah給出 –

回答

0

我會用LEFT JOIN

像這樣:

$sql = "SELECT `p`.`ID`,`p`.`post_title`,`p`.`post_category`,`p`.`post_perma`,`c`.`cat_ID`,`c`.`cat_nicename` FROM `".TBL_POSTS."` AS `p` "; 
$sql .= "LEFT JOIN `".TBL_CATEGORIES."` AS `c` ON `c`.`cat_ID`=`p`.`post_category` WHERE `p`.`published`='1' AND `p`.`page`='0' ORDER BY `p`.`ID` DESC LIMIT 10"; 

您可能需要調整WHERE條款適合您的需求更多......

請注意:這是一個字符串,我剛剛將它們分成兩行,因此它更易於閱讀。 .=是追加當前字符串。

+0

嗨數組我漸漸只剩下最後一個cat_nicename ..謝謝你的答案..但有一個問題,你的查詢..在你的選擇它是選擇只是最後一個'cat_nicename',而在我的第二個查詢..我在數組中得到cat_nicename ..這樣我可以使返回類別的路徑..getting我? – user1713941

+0

啊是的,我沒有看到 - 對不起,看看@Suryawanshi Manoj的回答 –

+0

我確實嘗試了他的答案..但不工作:( – user1713941

4

請試試這個,它可能對您有所幫助。

SELECT a.ID, a.post_title,a.post_category,a.post_perma, b.cat_ID, b.cat_nickname 
FROM (SELECT ID,post_title,post_category,post_perma FROM ".TBL_POSTS." WHERE published='1' AND page='0' ORDER BY ID DESC LIMIT 10) a 
LEFT JOIN (SELECT p.cat_ID as cat_ID,p.cat_nicename as cat_nickname FROM " . TBL_CATEGORIES . " n, " . TBL_CATEGORIES . " p WHERE n.lft BETWEEN p.lft AND p.rgt AND n.cat_ID = '" .$post_category. "' ORDER BY p.lft) b ON a.ID = b.cat_ID 
+0

嗨..當我改變$ post_category as.post_category它說a.post_category是未知的列.. $ post_category不是一個變量..它被用於當我從第一個查詢中獲取post_category ..而在這裏它應該只與TBL_POST鏈接.. :( – user1713941

+0

@ user1713941是這些查詢單獨工作? –

+0

是的,當然是工作..我在這裏發佈我的問題很詳細.. http://stackoverflow.com/questions/12974224/combine-two-mysql-select-queries請看看哥們..非常感謝你:) – user1713941