mysql - 如何在多个表层次结构级别上执行 mysql join 语句?

标签 mysql join

假设我有下面的 table :

House:
id
name
cityID

其中cityID是指city表的id字段

City:
id
name
stateID

其中stateID是指表状态的id字段

State:
id
name
countryID

其中countryID指的是表country的id字段:

Country:
id
name

如何执行 mysql 连接语句,以便我可以使用此多级位置引用层次结构获取特定国家/地区内的房屋?

最佳答案

您可以使用连接或嵌套查询:

Select House.* from ((House join City on House.CityID = City.id)
                          join State on City.StateID = State.id)
                          join Country on State.CountryID = Country.id
               where Country.name = 'Australia'

Select * from House where CityID in (
    Select id from City where StateID in (
        Select id from State where CountryID in (
            Select id from Country where name = 'Australia'
        )
    )
) 

关于mysql - 如何在多个表层次结构级别上执行 mysql join 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3732144/

相关文章:

Mysql 喜欢在字符串末尾匹配模式

python - 如何解压列表列表?

mysql - MySQL 存储过程中的循环

python - 将 python 变量插入 mysql 表的行中

php - 如果我们将相同的值保存两次,则sql查询从表中获取一个值

php - 如何将这个内连接 mysql 查询转换为 Laravel 的 Fluent 查询?

cocoa - Cocoa 中等效的 C# 'Thread.Join()' 是什么?

mysql - 复杂的 SELECT 语句包含多个未返回所需结果的联接

mysql - 我想了解这个查询是什么意思?

mysql - MS Access VBA 从表单写入表