2016-01-23 88 views
-1

我想查詢一個數據庫,以便將所有期望的帖子與他們的圖像並列。我設法用2個不同的查詢來完成它。第一個,將所有帖子與所需的字段並列,第二個,在foreach循環中運行,以便獲取每個帖子的圖像。我的問題是,這需要很長的時間,我想避免身份證。我需要一個解決方案來避免第二個查詢中的foreach循環,並將它合併到第一個查詢中。結合2個SQL查詢以避免foreach循環

查詢1

"SELECT * FROM wp_posts"; 

和foreach返回posts.ID

查詢2

"SELECT wp_posts.guid IN (Select wp_postmeta.meta_value from wp_postmeta where wp_postmeta.meta_key = '_thumbnail_id' AND wp_postmeta.post_id = ('the returned post id foreach of ID output of the first query')" 

回答

0

我知道posgresql,一個JOIN會做到這一點。我不知道有足夠的瞭解文字新聞,但我會考慮它和更新這個答案

UPDATE這應做到:

SELECT guid FROM wp_posts 
OUTER JOIN wp_postmeta on wp_postmeta.post_id = wp_posts.id 
where wp_postmeta.meta_key = '_thumbnail_id'; 

聯接組合上的特定鍵的兩個表。

1

採用歸一化法將通過避免兩個查詢解決您的問題:

SELECT WP.guid 
FROM wp_posts WP, 
    wp_postmeta WPM 
WHERE wp_postmeta.meta_key = '_thumbnail_id' 
    AND WPM.post_id=WP.yourForeignField 
GROUP BY WP.guid