这个描述会有点挑战。我有一个非常不寻常的案例,我需要在WordPress中编写查询。
我有一个名为artists
的帖子类型,另一个名为performances
的帖子类型。艺术家使用键artist_id
获得元值。
演奏具有相同的元键,引用艺术家。我意识到这个替代ID的子系统是荒谬的,但事情是出于其他原因,你必须相信我,他们是明智的。
性能具有show_set_time
的另一个元密钥,其中包含UNIX时间戳。
我需要编写一个查询,可以让我所有艺术家在某个特定日期之后都有表现。
如果不清楚,请告诉我。我再次完全认识到ID键很荒谬,但还有其他因素。
答案 0 :(得分:1)
这显然未经测试,但我认为它应该有效:
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')