gpt4 book ai didi

mysql - 对于具有单表继承的多个类的多通连接,正确的 SQL 语句是什么

转载 作者:行者123 更新时间:2023-11-30 01:12:34 27 4
gpt4 key购买 nike

我有两个表,地点和用户

-- Places Table: --
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| type | varchar(15) | NO | | NULL | |
| parent_id | int(11) | YES | MUL | NULL | |
+------------+--------------+------+-----+---------+----------------+

-- Users Table: --
+------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | | NULL | |
| city_id | int(11) | YES | MUL | NULL | |
+------------+--------------+------+-----+---------+----------------+

我有三个模型,它们都使用 Places 表,并且都是 Places 表的子类放置模型。 place.type 列保存子类的类名,因此我知道它属于哪个型号。

国家、州、城市。

所以,继承结构如下:

国家<地点州 < 地点城市<地点

关系如下:

国家有很多州该州有许多城市城市有很多用户

我想通过加入州和城市来返回给定国家/地区内的所有用户,但我无法让 SQL 查询为其工作。

有哪位 SQL 专家可以为我指明正确的方向吗?

最佳答案

这个怎么样?您需要国家/地区的 ID。

SELECT st.name,  
city.name,
u.name

FROM users u,
places city,
places st

WHERE u.city_id = city.id
AND city.type = 'city'
AND st.type = 'state'
AND st.id = city.parent_id
AND st.parent_id = @country_id

关于mysql - 对于具有单表继承的多个类的多通连接,正确的 SQL 语句是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19352698/

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