Mysql 如何实现一个查询,返回一条包含2条特定记录中包含的信息的记录?
我不太喜欢SQL,我有以下问题 因此,基本上我有一个包含以下字段的表: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
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条记录,这可能是巨大的。