[英]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.