1

这将是一个有点难以描述的挑战。我有一个非常不寻常的案例,我需要在 WordPress 中编写查询。

我有一个帖子类型,叫做artists,还有一个帖子类型,叫做performances。艺术家有一个带有 key 的元值artist_id。表演具有相同的元键,引用艺术家。我意识到这个替代的 ID 子系统很荒谬,但由于许多其他原因,事情就是这样,你必须相信我,他们是明智的。

表演有另一个show_set_time包含 UNIX 时间戳的元键。

我需要编写一个查询,以获取在某个日期之后有表演的所有艺术家。

如果不清楚,请告诉我。我再次完全认识到 ID 密钥是荒谬的,但还涉及其他因素。

4

1 回答 1

2

这显然是未经测试的,但我认为它应该工作:

SELECT *

FROM (SELECT NULL) AS dummy

INNER JOIN
wp_posts AS artist
ON artist.post_type = `artist`

INNER JOIN
wp_postmeta AS meta_artist_id
 ON meta_artist_id.post_id = artist.ID
AND meta_artist_id.meta_key = 'artist_id'


INNER JOIN
wp_posts AS performance
ON artist.post_type = `performance`

INNER JOIN
wp_postmeta AS meta_performance_artist_id
 ON meta_performance_artist_id.post_id = performance.ID
AND meta_performance_artist_id.meta_key = 'artist_id'
AND meta_performance_artist_id.meta_value = meta_artist_id.meta_value

INNER JOIN
wp_postmeta AS meta_performance_date
 ON meta_performance_date.post_id = performance.ID
AND meta_performance_date.meta_key = 'show_set_time'

WHERE
meta_performance_date.meta_value > DATE('2012-12-21')
于 2012-06-29T20:58:06.147 回答