繁体   English   中英

另一个查询中的SQL结果查询

[英]SQL result query in another query

我正在使用innodb是id_name-> name.id和id_street-> street.id的外键,我想从名称表中获取名称和号码,具体取决于使用关系表从街道表中的街道和邮编,但我不知道知道我应该使用的SQL查询。

    Name                      Street                    Relationship
___________ _______      ______________ ____       __________________________
|id  |name | number|     |id  | street |zip |      |id | id_name | id_street |    
|____|_____|_______|     |____|________|____|      |___|_____________________|  
|1   | aaa | 11111 |     |1   | s1     |600 |      |1  | 1       |  1        |                   
|2   | bbb | 11112 |     |2   | s2     |600 |      |2  | 1       |  2        |
|3   | ccc | 11113 |     |3   | s3     |600 |      |3  | 2       |  3        |

我应该使用多个查询:

- 1)get the id of the street/zip (ex: s2 and 600 return=2 )
- 2)get the id of the name (1) from the returned id (2)
- 3) select name/number field from name id (1)

或者可以合并所有查询。

使用此查询:

SELECT name.name, name.number FROM name
    JOIN relationship AS r ON name .id = r.id_name 
    JOIN street ON street.id = r.id_street
    WHERE street.street = "yourStreet" AND street.zip="1111";

您可以通过应用多个连接来实现结果

SELECT 
       N.name,n.number
FROM 
       Name N,
       Street S,
       Relationship R
WHERE
       N.id = R.id_name
AND
       S.id = R.id_street 
AND
       R.id_street = 2 (Displays data only Street ID 2)

您可以添加更多自定义条件来过滤并通过别名选择所需的列

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM