php
  • mysql
  • sql
  • 2012-09-27 139 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"; 
    
    相关问题