假设您从 Web 服务器到 DBA 服务器的连接非常慢,并且您需要执行一系列三个查询来处理单个 Web 请求。有没有办法将查询组合成一个?假设以下场景
person.id person.name
1 James
2 Stacy
.
country.id country.name
1 USA
2 UK
.
location.person_id location.country_id
1 1
1 2
网络表单将发布两个变量,即 name="James" country="China" 并且您想要执行以下操作
- “James”是否存在,如果不存在,插入 james
- “中国”是否存在,如果不存在,插入china
- “詹姆斯”是否住在“中国”,如果不插入关系
即类似的东西
select person.id, country.id, location.person_id
from person, country, location
where
person.name="James" and
country.name="China" and
person.id=location.id and country.id=location.country_id
上面的查询没有用,因为如果人员、国家或地点不存在,它将不返回任何记录。
我知道使用存储过程可以做到这一点,但并非所有数据库都支持存储过程。