我正在尝试从3个表中获取数据,并加入2个不同的值。我习惯了Oracle,并且在别名方面做错了。有人可以帮我这个吗?
SELECT r.idreservation, r.first, r.last, r.StartDay, r.NumberOfDays, g.First, g.Last, l.location
FROM reservation r, guides g, Locations l
WHERE r.guide = g.idguides
AND r.location = l.idlocations
AND r.StartDay >= dateString
我是否需要在dateString周围使用单引号? r.StartDay的类型为DATE。
答案 0 :(得分:1)
SELECT r.idreservation, r.first,
r.last,
r.StartDay,
r.NumberOfDays,
g.First,
g.Last,
l.location
FROM reservation r,
guides g,
Locations l
WHERE r.guide = g.idguides AND
r.location = l.idlocations AND
r.StartDay >= dateString
OR
SELECT r.idreservation, r.first,
r.last,
r.StartDay,
r.NumberOfDays,
g.First,
g.Last,
l.location
FROM reservation r
INNER JOIN guides g
ON r.guide = g.idguides
INNER JOIN Locations l
ON r.location = l.idlocations
WHERE r.StartDay >= dateString;
答案 1 :(得分:1)
好的,我明白了:你可能只有一些“引号”问题:
"SELECT r.idreservation, "r.first, "
^
和
+ "r.StartDay >= "+dateString"
^
作为捕获这些错误的提示,您应该在同一“行”上只有偶数引号。可能您必须使用简单引用来分隔双引号字符串中的字符串。
作为最后的建议,如果您的宿主程序语言允许这样做,那么多行字符串可能会像您一样更具可读性。此外,这将避免在您的示例中出现“遗失空间”错误(请参阅注释)。