我正在尝试JOIN
两张桌子,但它无法正常工作。我loc_id
在所有表中都有,它们的值都是1
. 我的数据库是 INNODB。loc_id
是名为 的第三个表的唯一 ID b_locations
。我也尝试过将这张桌子包括在内JOIN
,但我真的不需要它,这也给了我相同的结果。我希望能够使用JOIN
3 个或更多表以供将来校对,但显然我需要先让 2 个工作。
我加入查询中未包含的表的唯一 ID 的方法是一种不好的方法吗?
这是我的 SQL:
SELECT d.view_id,
d.gps_lat survey_lat,
d.gps_lng survey_lng,
d.thumbnail,
c.sign_type,
c.gps_lat object_lat,
c.gps_lng object_lng
FROM `d_view_angles` AS d
JOIN c_survey_elements AS c
ON d.loc_id = c.loc_id
WHERE c.loc_id = '1'
这是我得到的(请参阅所需结果下方的粗体文本):
1 37.367156 -77.39987 ... FREESTANDING SIGN 37.367229 -77.399835
2 37.367305 -77.399801 ... FREESTANDING SIGN 37.367229 -77.399835
3 37.36739 -77.400022 ... FREESTANDING SIGN 37.367229 -77.399835
4 37.367619 -77.399897 ... FREESTANDING SIGN 37.367229 -77.399835
1 37.367156 -77.39987 ... DOWN LIGHTING 37.367408 -77.400077
2 37.367305 -77.399801 ... DOWN LIGHTING 37.367408 -77.400077
3 37.36739 -77.400022 ... DOWN LIGHTING 37.367408 -77.400077
4 37.367619 -77.399897 ... DOWN LIGHTING 37.367408 -77.400077
1 37.367156 -77.39987 ... DOWN LIGHTING 37.367635 -77.399944
2 37.367305 -77.399801 ... DOWN LIGHTING 37.367635 -77.399944
3 37.36739 -77.400022 ... DOWN LIGHTING 37.367635 -77.399944
4 37.367619 -77.399897 ... DOWN LIGHTING 37.367635 -77.399944
我已经尝试过GROUP BY survey_lat, survey_lng
,但它采用了前 4 个结果,这给了我以下结果(注意重复c.sign_type
,c.gps_lat
和c.gps_lng
):
1 37.367156 -77.39987 ... FREESTANDING SIGN 37.367229 -77.399835
2 37.367305 -77.399801 ... FREESTANDING SIGN 37.367229 -77.399835
3 37.36739 -77.400022 ... FREESTANDING SIGN 37.367229 -77.399835
4 37.367619 -77.399897 ... FREESTANDING SIGN 37.367229 -77.399835
这些是我应该得到的结果:
1 37.367156 -77.39987 ... FREESTANDING SIGN 37.367229 -77.399835
2 37.367305 -77.399801 ... FREESTANDING SIGN 37.367229 -77.399835
3 37.36739 -77.400022 ... DOWN LIGHTING 37.367408 -77.400077
4 37.367619 -77.399897 ... DOWN LIGHTING 37.367635 -77.399944
我确定这很简单,但我还没有找到问题所在。我的猜测是我的JOIN
,但我已经阅读了许多教程,遍及 W3Schools,尝试了不同的JOINS
(INNER JOIN
、、、RIGHT JOIN
等RIGHT OUTER JOIN
)并观看了 Youtube 教程。如果它不在我的SQL
声明中,那么欢迎对表格格式提出建议,如果需要任何其他信息,请告诉我。
我无法控制 MYSQL 版本,这是在 SurpassHosting 托管的远程服务器上运行的(我不推荐它们)。
MYSQL Server 版本:5.0.95-community
协议版本:10
通过 PHPMyAdmin 运行 SQL 查询版本信息:3.4.10.1 和 MSQL WorkBench 5.2.37 CE