在MySQL中连接多个表

时间:2015-12-11 13:04:11

标签: mysql inner-join multiple-tables

我正在尝试连接MySQL中的多个表,这是查询:

SELECT p.post_title
     , p.post_content
     , p.guid
     , i.guid
     , m.meta_value
  FROM twypl_posts p
  JOIN twypl_posts i 
    ON i.ID = p.post_parent 
  JOIN twypl_postmeta m 
    ON p.ID = m.post_id
 WHERE p.post_status = "publish" 
   AND p.post_type   = "product"
   AND i.post_type   = "attachment"
   AND m.meta_key IN ("_product_attributes", "_sku", "_price")

所以基本上我有2个表,twypl_poststwypl_postmeta,但我想加入3个表,2个twypl_posts(一个只有"产品" {{ 1}}和一个只有"附件" post_type)和一个post_type表格。 它们分别通过外键twypl_postmetaID),twypl_postspost_parent连接。 post_id有一个twypl_posts用于"附件" post_parent链接到父产品(post_typestwypl_posts"产品")。

当我运行上述查询时,它不会返回任何结果(没有查询错误)。

使用具有复杂DRM的框架后,我的SQL变得有点生疏了。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为你错了:INNER JOIN twypl_posts i ON p.post_parent = i.ID 它应该是INNER JOIN twypl_posts i ON p.ID = i.post_parent 由于 i 是附件