Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写这个简单的MySQL连接查询?_Mysql_Sql_Union - Fatal编程技术网

如何编写这个简单的MySQL连接查询?

如何编写这个简单的MySQL连接查询?,mysql,sql,union,Mysql,Sql,Union,我需要从两个表中选择记录,一个称为城市,另一个称为社区。它们都共享一个共同的表列,称为parent\u state。在此单元格中存储父状态的id 我需要选择属于某个州的所有城市和社区。例如,如果州id为10,我需要为其父州单元获取具有此值的所有城市和社区 状态id存储在PHP变量中,如下所示: $parent_state='10' 这个查询是什么样子的(最好是两个表的合并结果应该按列名称按字母顺序排序) 编辑 是的,我可能确实需要一个工会。我对mysql非常陌生,目前我所能做的就是单独查询表 我

我需要从两个表中选择记录,一个称为城市,另一个称为社区。它们都共享一个共同的表列,称为parent\u state。在此单元格中存储父状态的id

我需要选择属于某个州的所有城市和社区。例如,如果州id为10,我需要为其父州单元获取具有此值的所有城市和社区

状态id存储在PHP变量中,如下所示:

$parent_state='10'

这个查询是什么样子的(最好是两个表的合并结果应该按列名称按字母顺序排序)

编辑 是的,我可能确实需要一个工会。我对mysql非常陌生,目前我所能做的就是单独查询表

我总是可以分别查询城市和社区表,但我想要合并结果的原因只是为了按字母顺序列出所述结果


那么,有人能展示一下这个联合查询的外观吗?

您想要的可能不是一个联接,而是一个
联合。请注意,联合只能从两个连接的表达式中选择完全相同的列

select * from city as c
inner join neighborhoods as n
on n.parent_state = c.parent_state
where c.parent_state=10
如果城市和黑人没有关系数据,可以使用Left、Right Join

使用:

SELECT c.name
  FROM CITIES c
 WHERE c.parent_state = 10
UNION ALL
SELECT n.name
  FROM NEIGHBORHOODS h
 WHERE n.parent_state = 10
UNION ALL
将返回两个查询的组合结果集作为单个结果集
UNION
将删除重复项,而且速度较慢-这就是为什么
UNION ALL
是一个更好的选择,即使它不太可能有同名的城市和街区。老实说,把两者混合起来听起来不是个好主意,因为一个街区是城市的一部分

UNION还需要注意的是,SELECT子句中所有被UNION的查询的列数必须相同(这适用于
UNION
UNION all
)。IE:如果第一个查询在SELECT子句中有三列,而第二个查询只有两列,则会出现错误

此外,数据类型必须匹配——这意味着不在返回整数的其他查询的相同位置返回日期/时间数据类型