gpt4 book ai didi

php - 需要帮助编写返回简单数组的疯狂复杂嵌套 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 03:02:08 25 4
gpt4 key购买 nike

我对此感到厌烦 - 我有一个表,其中只有 4 列定义了 3 到 20 位信息的任意位置。除了显示部分数据库和我想要的输出之外,我什至不确定如何描述问题,所以就这样吧。该表有 4 列:meta_id、post_id、meta_key、meta_value。是的,它来自 WP。我需要从(我认为)不同的 post_id 列表开始,其中 meta_key =“location”和 meta_value =“washington”。使用该列表,我想返回一个新的“表”或所有其他数据的数组,其中 post_id = 每个不同的值,meta_key 值是一个新的字段名称,具有相应的 meta_value 作为它的值。我知道这没有多大意义,但这是来 self 的不同列表中的一个 post_id 的相关数据——这可能会帮助您了解我在寻找什么。我从上面提到的 post_id 的 DISTINCT 列表中得到了这个结果的 post_id。

meta_id  |  post_id  |  meta_key  |  meta_value
---------|-----------|------------|-------------------
46922 | 5923 | adlink | htp://whatever.com
46923 | 5923 | subloc | Menu Page
46924 | 5923 | size | Premium
46924 | 5923 | location | Washington
46924 | 5923 | image1 | 5924
46924 | 5923 | image2 | 5925

现在,关键是:我需要用 meta_value 替换 meta_value where meta_key = "image1"or "image2"和 meta_value where post_id = the meta_value where post_id = 5923 AND meta_key = "image1"or "image2"。该数据来自表格的一部分,如下所示:

meta_id  |  post_id  |  meta_key  |  meta_value
---------|-----------|------------|-------------------
46942 | 5924 | file | img1.jpg
46923 | 5925 | file | img2.jpg

我喜欢的是这样的:

id   |  adlink            |  sublock  |  size   | location   | image1   | image2
-----|--------------------|-----------|---------|------------|----------|---------
5923 | htp://whatever.com | Menu Page | Premium | Washington | img1.jpg | img2.jpg

这有意义吗?这真的让我很难受 - 非常感谢任何对此复杂查询的帮助!

最佳答案

哈,使用 wordpress 我一直这样做。您基本上想使用多个连接,并使用 column_name 作为 desired_name 来设置列名。这是一个使用 id 5923 的示例:

SELECT meta1.post_id as 'id', 
meta1.meta_value as 'adlink',
meta2.meta_value as 'sublock',
meta3.meta_value as 'size',
meta4.meta_value as 'location',
meta5.meta_value as 'image1',
meta6.meta_value as 'image2'

FROM wp_postmeta as meta1

INNER JOIN wp_postmeta as meta2 ON meta1.post_id = meta2.post_id
INNER JOIN wp_postmeta as meta3 ON meta1.post_id = meta3.post_id
INNER JOIN wp_postmeta as meta4 ON meta1.post_id = meta4.post_id
INNER JOIN wp_postmeta as meta5 ON meta1.post_id = meta5.post_id
INNER JOIN wp_postmeta as meta6 ON meta1.post_id = meta6.post_id

WHERE
meta1.post_id = '5923'
AND meta1.meta_key = "adlink"
AND meta2.meta_key = "sublock"
AND meta3.meta_key = "size"
AND meta4.meta_key = "location"
AND meta5.meta_key = "image1"
AND meta6.meta_key = "image2"

这是未经测试的,但你应该明白了。希望对你有帮助

关于php - 需要帮助编写返回简单数组的疯狂复杂嵌套 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21750252/

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