我有两张表word_term_relationships
和word_posts
我正在做的是使用while
循环来从word_term_relationships
表中获取特定值为true的特定记录。
$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";
我知道上面的查询遗漏了一些内容,我在where
之后想到了第二个ORDER BY word_posts.post_date ASC
。
答案 0 :(得分: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
答案 1 :(得分: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";