Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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/0/xml/12.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 如何实现一个查询,返回一条包含2条特定记录中包含的信息的记录?_Mysql_Sql - Fatal编程技术网

Mysql 如何实现一个查询,返回一条包含2条特定记录中包含的信息的记录?

Mysql 如何实现一个查询,返回一条包含2条特定记录中包含的信息的记录?,mysql,sql,Mysql,Sql,我不太喜欢SQL,我有以下问题 因此,基本上我有一个包含以下字段的表: id: BigInt geographical_position: Geometry // SOME OTHER FIELDS IRRILEVANT FOR MY QUERY 我想选择一条记录,其中包含两条特定记录的地理位置值(必须显示在同一条记录上),因此我尝试这样做: SELECT a.geographical_position AS point1, a.geographi

我不太喜欢SQL,我有以下问题

因此,基本上我有一个包含以下字段的表:

id:                    BigInt
geographical_position: Geometry
// SOME OTHER FIELDS IRRILEVANT FOR MY QUERY
我想选择一条记录,其中包含两条特定记录的地理位置值(必须显示在同一条记录上),因此我尝试这样做:

SELECT
  a.geographical_position AS point1,
  a.geographical_position AS point2
FROM accomodation a

where a.id = 31 and a.id = 32
但它似乎是错误的,因为它获取一个空的结果集

基本上,我想在名为point1的单元格中获取id=31的记录的地理位置,在名为point2的单元格中获取id=32的记录的地理位置


我该怎么办?我的问题出了什么问题?如何修复它?

我想您可以通过
自连接来修复它

SELECT
  a1.geographical_position AS point1,
  a2.geographical_position AS point2
FROM accomodation a1
JOIN accomodation a2 ON a1.id=31 and a2.id=32

您当前的查询是错误的,因为
id
不能同时有两个值。

我认为您可以通过
自连接来完成

SELECT
  a1.geographical_position AS point1,
  a2.geographical_position AS point2
FROM accomodation a1
JOIN accomodation a2 ON a1.id=31 and a2.id=32

您当前的查询是错误的,因为
id
不能同时有两个值。

请指定两次表并相应地引用:

SELECT
a.geographical_position AS point1,
b.geographical_position AS point2
FROM accomodation a, accomodation b
where a.id = 31 and b.id = 32

指定表格两次,并相应地引用:

SELECT
a.geographical_position AS point1,
b.geographical_position AS point2
FROM accomodation a, accomodation b
where a.id = 31 and b.id = 32

你的意思是
否?@Drew你是什么意思?对于任何给定的
a
别名行,a.id不能同时为31和32。你的意思是
否?@Drew你是什么意思?对于任何给定的
a
别名行,a.id不能同时为31和32。OK,它工作正常。现在我正在尝试类似的方法,但我不知道我可以使用ON,比如WHERE:-)您还应该考虑缩小
join
条件的范围,因为id=31的所有记录都与id=32的所有记录合并。如果每个人都有1000条记录的话,这将是一个巨大的数字。好的,它工作得很好。现在我正在尝试类似的方法,但我不知道我可以使用ON,比如WHERE:-)您还应该考虑缩小
join
条件的范围,因为id=31的所有记录都与id=32的所有记录合并。如果每个人都有1000条记录,这可能是巨大的。