我有两个表,我正在加入Inner join。
第一个表是位置列表,第二个表是每个位置的产品列表。
我的问题是当我运行内部联接时,如果有一个没有任何产品的位置,该位置将不会显示。
基本上如果内连接中没有任何东西,它基本上不存在。
SELECT idL, n, lat,lng, latest, type,
( 3959 * acos( cos( radians('33.111963') ) * cos( radians( lat ) ) * cos( radians(lng ) - radians('-117.281985') ) + sin( radians('33.111963') ) * sin( radians( lat ) ) ) ) AS distance
FROM Table1
inner join(SELECT ids, max(dateTime) as latest FROM Table2 GROUP BY ids ) as tableJ
on idL = ids
WHERE type = "Grocery"
GROUP BY idL
HAVING distance < '15'
ORDER BY distance asc
SQL可能看起来有点疯狂,因为它的计算距离也很远。
答案 0 :(得分:3)
答案 1 :(得分:0)
在这种情况下,LEFT OUTER JOIN
将是正确的“JOIN
”类型。
左外连接从表A中生成一组完整的记录,其中包含表B中的匹配记录(如果可用)。如果没有匹配,则右侧将包含null。