连接 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_posts
和twypl_postmeta
,但我想加入3个table,2个twypl_posts
(一个只有 "product" post_type
和一个只有 "attachment" post_type
) 和一个 twypl_postmeta
table。
它们分别通过外键 ID
(twypl_posts
)、post_parent
和 post_id
连接。 twypl_posts
对 "attachment" post_types
有一个 post_parent
,link 对父产品(twypl_posts
和 post_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 是附件
我正在尝试在 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_posts
和twypl_postmeta
,但我想加入3个table,2个twypl_posts
(一个只有 "product" post_type
和一个只有 "attachment" post_type
) 和一个 twypl_postmeta
table。
它们分别通过外键 ID
(twypl_posts
)、post_parent
和 post_id
连接。 twypl_posts
对 "attachment" post_types
有一个 post_parent
,link 对父产品(twypl_posts
和 post_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 是附件