如果同一表中的不同字段匹配两个不同的值,则列出相同的字段两次

时间:2012-03-16 19:33:07

标签: mysql

复杂的问题,但我怀疑答案可能会更容易一些!

我的WordPress安装使用带有名为wp_postmeta的表的MySQL数据库。

此表格有四列,meta_idpost_idmeta_keymeta_value

我在wp_posts表中存储了许多捕鱼物种配置文件,每个配置文件都有id,与wp_postmeta的{​​{1}}列相关联。

每个物种配置文件在元表中都有一个条目post_idmeta_key。同样,他们有一个genusmeta_key的条目。

species

我需要的是wp_posts post_id post_title 2 Satanoperca daemon (Three spotted daemon) 4 Betta splendens (Siamese fighting fish) wp_postmeta meta_id post_id meta_key meta_value 10 2 genus Satanoperca 11 2 species daemon 12 4 genus Betta 13 4 species splendens genus我在邮政表中的每个物种配置文件,以便我得到一个列表:

species

提前致谢,

1 个答案:

答案 0 :(得分:2)

SELECT posts.post_id AS post_id, meta1.meta_value AS genus, meta2.meta_value AS species
  FROM wp_posts posts
    LEFT OUTER JOIN wp_postmeta meta1
      ON posts.post_id = meta1.post_id AND meta1.meta_key = "genus"
    LEFT OUTER JOIN wp_postmeta meta2
      ON posts.post_id = meta2.post_id AND meta2.meta_key = "species"