连接 MySQL 中的多个表

Joining multiple tables in MySQL

我正在尝试在 MySQL 中加入多个 table,这是查询:

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个table,twypl_poststwypl_postmeta,但我想加入3个table,2个twypl_posts(一个只有 "product" post_type 和一个只有 "attachment" post_type) 和一个 twypl_postmeta table。 它们分别通过外键 ID (twypl_posts)、post_parentpost_id 连接。 twypl_posts 对 "attachment" post_types 有一个 post_parent,link 对父产品(twypl_postspost_type "product" ).

当我运行上面的查询时,它没有return任何结果(没有查询错误)。

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

我认为你在那里犯了一个错误:INNER JOIN twypl_posts i ON p.post_parent = i.ID 应该是 INNER JOIN twypl_posts i ON p.ID = i.post_parent 因为 i 是附件