gpt4 book ai didi

mysql - 使用具有连接的 MySQL 子查询时的命名冲突

转载 作者:行者123 更新时间:2023-11-29 20:34:41 33 4
gpt4 key购买 nike

我正在使用子查询来过滤表,但它连接了另一个我也需要其值的表:

SELECT * FROM properties
JOIN (
SELECT persons.*, cities.* FROM persons
JOIN properties.* ON properties.person_id = persons.id
AND (properties.value = 1 OR properties.value = 2)
JOIN cities ON cities.id = persons.city_id
GROUP BY persons.id
HAVING COUNT(DISTINCT properties.id) = 2
) filtered_persons ON filtered_persons.id = properties.person_id

命名子查询filtered_persons时,由于persons.idcities.id而发生冲突。子查询实际上来自 PHP 代码中的函数调用,否则我稍后会简单地加入 cities

结果是具有一组特定属性集的人员的所有属性的列表。

生成的查询应包含 properties.*persons.*cities.*,因为稍后将使用它来进一步过滤它下来。

如何在不更改子查询的情况下避免命名冲突?这可能吗?

最佳答案

您需要创建别名,并根据别名设置条件。喜欢SELECT * FROM 用户作为 userTable INNER JOIN 客户端作为客户端 ON userTable.id=clients.id;

关于mysql - 使用具有连接的 MySQL 子查询时的命名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38853952/

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