php
  • mysql
  • sql
  • 2012-09-27 147 views 2 likes 
    2

    我有兩個表word_term_relationshipsword_posts結合到兩個表在一個查詢中訂購數據

    我在做什麼使用while循環才能從word_term_relationships表中提取一定的記錄,其中一定值是真的。

    $query = "SELECT object_id 
          FROM `word_term_relationships` 
          WHERE `term_taxonomy_id` = '54'"; 
    

    然後我用內循環的另一個查詢使用從之前的查詢,以便檢索的數據從另一個表word_posts

    $query2 = "SELECT post_title, post_date, post_date_gmt, guid 
          FROM `word_posts` 
          WHERE `ID` = '$post_id'"; 
    

    這我能做到和獲取數據工作正常。

    唯一的問題是,我則需要按日期和時間的結果,我可以做到這一點,而不while迴路,並使用ORDER BY功能和word_posts表。

    但是,我試圖鏈接查詢內這樣的表(以下)以訂購數據。但顯然這是不正確的 - 我只是不能在查詢中指出什麼是錯的。

    $query = "SELECT word_term_relationships.object_id 
          FROM word_term_relationships 
          WHERE word_term_relationships.term_taxonomy_id = '54' 
          ORDER BY word_posts.post_date ASC"; 
    

    我知道上面查詢缺少的東西,我是在ORDER BY word_posts.post_date ASC後想第二where

    回答

    1

    一個簡單的INNER JOIN將解決您的問題。試試這個,

    SELECT a.post_title, 
         a.post_date, 
         a.post_date_gmt, 
         a.guid 
    FROM word_posts a 
         INNER JOIN word_term_relationships b 
          ON a.ID = b.object_id 
    WHERE b.term_taxonomy_id= '54' 
    ORDER BY a.post_date ASC 
    
    +0

    需要有由a.post_date – AnandPhadke

    +1

    爲了然後加「爲了通過a.post_date」到語句的結束。 – Jim

    0
    $query = "SELECT post_title 
           , post_date 
           , post_date_gmt 
           , guid 
          FROM word_posts a INNER JOIN word_term_relationships b on a.ID = b.object_id 
          WHERE term_taxonomy_id = '54' 
          ORDER BY a.post_date ASC"; 
    
    相關問題