gpt4 book ai didi

mysql - 表上的 LEFT JOIN。* 作为别名?

转载 作者:行者123 更新时间:2023-11-29 15:21:14 28 4
gpt4 key购买 nike

如何简单地将左联接的列值作为查询中的单独键返回?

SELECT meta.*
, post.* as venue
, venue_meta.* as venue_meta
FROM $wpdb->postmeta as meta
LEFT
JOIN $wpdb->posts as post
ON meta.meta_key = '_EventVenueID'
AND meta.meta_value = post.id
LEFT
JOIN $wpdb->postmeta as venue_meta
ON venue_meta.post_id = venue.id
WHERE meta.post_id = %d
GROUP
BY meta.meta_id

所以我期望帖子表中的所有列都以 $response['venue'] 返回,但第一行有语法错误。

最佳答案

基本上,像 post.* asvenue 这样的构造是无效的,并且会产生语法错误。

您可以为一个列名称使用一个别名,例如 post.id as id

但是您永远不会获得连接的嵌套结果。选择将检索行,这些行由列及其值的向量组成。

您的查询的简短形式为

选择*
FROM $wpdb->postmeta 作为元
左边
JOIN $wpdb->posts 作为帖子
ON meta.meta_key = '_EventVenueID'
AND meta.meta_value = post.id
左边
JOIN $wpdb->postmeta 作为venue_meta
ON field _meta.post_id = field .id
其中meta.post_id = %d

这将为您提供一行(或 PHP 中的数组)中所有表的所有列。要将其拆分为子数组,结果集允许您迭代结果集属性,例如列名称和表名称。这可能有助于以编程方式构建子数组。

关于mysql - 表上的 LEFT JOIN。* 作为别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59359026/

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