gpt4 book ai didi

php - 使用 PHP + MySQL Left Join 合并来自 2 个查询的结果

转载 作者:行者123 更新时间:2023-11-29 04:17:00 25 4
gpt4 key购买 nike

这就是我卡住的地方。我有两个表,我正试图从中提取信息。一个表在 idpost_title 列下包含感兴趣的数据,另一个在 post_idmeta_key 下包含数据和 meta_value 列。

我在 $in 中存储了一个数字数组,通过它我可以过滤两个表中的数据。

从第一个表中返回 idpost_title 很简单:

$query = "SELECT id, post_title FROM wplz_posts WHERE id IN ($in)";

这当然会返回一个名称和该名称的唯一 ID,例如:

[id] => 8 
[post_title] => Rustic Wooden Chair

不过,我还想获取与上面返回的 id 相关联的价格,执行此操作的单个查询类似于:

$query = "SELECT meta_value 
FROM wplz_postmeta
WHERE post_id IN ($in) AND meta_key = '_price'";

我的问题是,我希望能够通过一个查询而不是两个查询将所有这些数据返回到一个数组中,这样既可以是 post_title 也可以是 meta_value 将对应于 $in 中的每个数字(比如 8),这将允许我将查询返回到一个数组,然后根据需要循环遍历该数组。老实说,我已经在这上面花了很多时间,我认为我正在尝试做的事情需要一个“LEFT JOIN”,但是在看了多个视频和教程之后,我还没有弄清楚如何让这种难以捉摸的技术发挥作用。感谢您的帮助。 :)

最佳答案

如果联接的每一侧恰好有 1 行,您正在寻找 INNER JOIN,而不是 LEFT JOIN

SELECT id, post_title,meta_value FROM wplz_posts
INNER JOIN wplz_postmeta
ON wplz_postmeta.post_id=wplz_posts.id
WHERE wplz_posts.id IN ($in)
AND meta_key = '_price'

但如果可能只有 1 个表有匹配记录的情况,您可以调整 JOIN 的性质

关于php - 使用 PHP + MySQL Left Join 合并来自 2 个查询的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39810368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com