【发布时间】:2015-03-13 23:18:01
【问题描述】:
我正在编写一个查询来填充用户表单上的选择框,它工作正常,但是当我查看 SQL 时,我觉得应该有一种更好、更有效的方法来编写它。请注意,下面的两个嵌套 SELECT 来自同一个表。
我想知道是否有一个 SQL 技巧可以添加到我的曲目中,因为我必须不时进行这样的查询。或者也许我的方法在某些标准上是草率的?感谢您提供任何反馈。
这里是 SQL:
SELECT c.id, c.county_name, adr.county
FROM (SELECT id, county_name FROM counties WHERE state = (SELECT state FROM members WHERE id = 53)) AS c
LEFT JOIN (SELECT county FROM members WHERE id = 53) AS a ON c.id = a.county;
以下是结果(部分): http://i.stack.imgur.com/Jawfa.png 右栏的“3022”是会员53所在的县。
如果需要,这里是对查询和我的意图的解释:
我有一个 members 表,其中县字段存储为一个整数,链接到名为 counties 的查找表。我还想将县结果过滤到成员所在的州。
查询正在填充 HTML 选择元素,我想预先选择成员所在的县。我的 PHP 唯一可用的信息(无需运行第二个查询来获取更多信息)是成员 ID。
所以查询需要返回县 id、县名和某种标识符,让我知道哪个记录与成员匹配(我只是使用链接县字段,我的代码会检查它)。
数据库是从 PDO ODBC 连接访问的 MDB 文件。
【问题讨论】:
标签: sql ms-access odbc subquery correlated-subquery