如何从链接到主查询结果的子查询返回 MySQL 中的字段?

发布于 2024-11-05 14:38:52 字数 801 浏览 2 评论 0原文

我在 WordPress 数据库上使用的查询遇到了一些问题。下面的查询返回 meta_value 的正确且预期的数据,但我的问题来自于我没有从 中获取原始 post_id 返回的字段子查询,所以我无法将特定的 meta_value 与原始 post_id 链接起来 - 我可能很需要重新构造它,但我有点迷失关于如何返回与它找到的meta_value关联的数据。

SELECT meta_value
FROM wp_postmeta 
WHERE post_id IN (SELECT meta_value FROM wp_postmeta WHERE post_id IN ('1','2','3','4')) 
AND meta_key = '_wp_attached_file' 

示例数据

post_id    meta_key            meta_value
1          _thumbnail_id       2
2          _wp_attached_file   image.jpg

例如,给定 1 个或多个 post_id ('1') 的列表,我找到 meta_value ('2') 并查找具有匹配 post_id ('2') 和指定 meta_key ('_wp_attached_file) 的另一个条目'),我需要返回meta_value('image.jpeg')和原始 post_id('1')

提前致谢

I'm having a bit of a problem with a query I'm using on a wordpress database. The query below is returning the correct and expected data for meta_value but my problem comes from the fact I don't get a field returned for the original post_id from the subquery, so I'm not able to link a specific meta_value with the original post_id - I may well need to restructure this but I'm a bit lost as to how to return this data associated with the meta_value it found.

SELECT meta_value
FROM wp_postmeta 
WHERE post_id IN (SELECT meta_value FROM wp_postmeta WHERE post_id IN ('1','2','3','4')) 
AND meta_key = '_wp_attached_file' 

Sample data

post_id    meta_key            meta_value
1          _thumbnail_id       2
2          _wp_attached_file   image.jpg

So as an example, given a list of 1 or more post_ids ('1'), I find the meta_value ('2') and look for another entry with a matching post_id ('2') and specified meta_key ('_wp_attached_file'), and I need to return both the meta_value ('image.jpeg') and the original post_id ('1')

Thanks in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若相惜即相离 2024-11-12 14:38:52

只需使用自连接:

select wp1.*, wp2.* 
from wp_postmeta wp1, wp_postmeta wp2 
where wp2.post_id in (1,2,3) 
and wp1.meta_value = wp2.post_id and wp2.meta_key = '_wp_attached_file';

Just use a self join:

select wp1.*, wp2.* 
from wp_postmeta wp1, wp_postmeta wp2 
where wp2.post_id in (1,2,3) 
and wp1.meta_value = wp2.post_id and wp2.meta_key = '_wp_attached_file';
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文