【发布时间】:2017-04-27 18:56:58
【问题描述】:
我正在使用 mySQL,我的表的列如下:
post_id,meta_id,meta_value,meta_key
虚拟数据附加为:
我希望数据满足纬度必须在 60 到 60.5 之间的条件 经度必须在 8 到 9 之间。
我正在使用以下 where 子句:
SELECT *
FROM domenposts
LEFT JOIN domenpostmeta ON domenposts.id=domenpostmeta.post_id
WHERE ( domenpostmeta.meta_key = 'longitude' AND domenpostmeta.meta_value BETWEEN 8 AND 9 )
OR ( domenpostmeta.meta_key = 'latitude' AND domenpostmeta.meta_value BETWEEN 60 AND 60.5 )
这是有效的,但根据我的逻辑,条件之间必须是 AND 而不是 OR,这会导致零行。 我需要帮助来解决这个问题。
需要输出: 纬度在 60 到 60.4 之间且经度在 8 到 9 之间的所有 post_id。
这是我的表格数据:
postid metaid meta_key meta_value
1109 109 longitude 8.2135
1108 109 latitude 60.4029
1002 239 longitude 9
1080 241 latitude 70
1051 5 latitude 60
1001 239 latitude 62
【问题讨论】:
-
嗨!请您edit您的问题(不要尝试将详细信息发布为 cmets,它们不会正确格式化)包括:您正在使用的 DBMS(MySQL、MS SQL Server、PostgreSQL 等);问题中作为文本而不是图像的一小部分虚拟数据样本;您正在运行的完整 SQL,而不仅仅是
WHERE子句;你想要的输出,以及你得到的输出。 -
更新问题
-
@FaizanZahid 我仍然看不到您正在使用的数据库类型、文本形式的虚拟数据或预期和实际输出的实际示例。这对您来说似乎很明显,但请记住,我们并没有越过您的视线,我们只知道您提供给我们的信息,因此您必须帮助我们为您提供帮助。
-
请阅读minimal reproducible example并采取行动。