我有两个表,地点和用户
-- 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 表,并且都是 Place 模型的子类。places.type 列包含子类的类名,所以我知道它属于哪个模型。
国家,州,城市。
所以,继承结构如下:
国家 < 地点 州 < 地点 城市 < 地点
关系如下:
国家有很多州 州有很多城市 城市有很多用户
我想通过州和城市加入来返回给定国家/地区内的所有用户,但我无法让 SQL 查询为其工作。
那里有任何 SQL 专家可以为我指明正确的方向吗?