在MySQL中,有时候需要根据子级找到其对应的父级,比如一个城市表中,每个城市都有对应的省份,我们需要根据城市查询出相应的省份,这就需要用到根据子级找父级的方法。
-- 建立省份表CREATE TABLE province (id INT PRIMARY KEY,name VARCHAR(50));-- 建立城市表CREATE TABLE city (id INT PRIMARY KEY,province_id INT,name VARCHAR(50),FOREIGN KEY (province_id) REFERENCES province(id));-- 插入数据INSERT INTO province VALUES(1, '北京');INSERT INTO province VALUES(2, '上海');INSERT INTO province VALUES(3, '广东');INSERT INTO city VALUES(1, 1, '北京市');INSERT INTO city VALUES(2, 2, '上海市');INSERT INTO city VALUES(3, 3, '广州市');INSERT INTO city VALUES(4, 3, '深圳市');
以上是创建测试表的SQL语句,我们在province表中插入了3个省份的数据,同时在city表中插入了4个城市的数据,每个城市对应着相应的省份。
-- 查找广州市的省份SELECT p.* FROM city cJOIN province p ON c.province_id = p.idWHERE c.name = '广州市';
以上是根据城市名查找对应省份的SQL语句,通过JOIN来连接两个表,将city表和province表进行关联,最终通过WHERE条件过滤出我们想要的数据。