如何在另一个子查询中创建子查询?
这就是我得到的,显然它不起作用:
"Select `region` from `region` where `regioncode` IN
(Select `city` from `city` where `citycode` IN
(Select `citycode` from `postcode` where `postcode` LIKE '%" + txtPostcode.Text + "%'))"
对不起我的业余问题。
表格结构:
表格区域:
regioncode region provincecode netnumber
Tabel city:
citycode city from to regioncode
"从"和"到"意味着城市的邮政编码范围。
Tabel邮政编码:
postcode street from to citycode
这里"来自"和"到"暗示地址编号的范围
Tabel省:
provincecode province
所以,我应该可以从邮政编码的来源获取该区域。邮政编码将从文本框中输入。
我得到了街道,城市和地址编号范围。但该地区并不适合我。
对于我破碎的英语和我的业余问题也很抱歉:。
答案 0 :(得分:0)
您可以考虑使用JOINs而不是多个子查询。
SELECT region from region r
JOIN city c ON c.regioncode = r.regioncode
JOIN postcode pc ON pc.citycode = c.citycode
WHERE pc.postcode LIKE '%test%'
这相当于您当前尝试对子查询执行的操作。
编辑:我已将上述查询更新为不通过省份,因为如果城市有区域代码并且您只是想要获取区域,则不需要它。您仍然可以使用子查询。您应该从regioncode
表而不是city
获取city
:
SELECT region FROM region WHERE regioncode IN
(SELECT regioncode FROM city WHERE citycode IN
(SELECT citycode FROM postcode WHERE postcode LIKE '%test%')
)
我只是使用test
作为txtPostcode.Text中任何内容的临时值