-2

我正在尝试从 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 类型。

4

2 回答 2

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

或者

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;
于 2013-08-11T16:23:48.247 回答
1

好的,我明白了:您可能只有一些“引号”问题:

"SELECT r.idreservation, "r.first, "
                         ^   

+ "r.StartDay >= "+dateString"
                 ^

作为捕捉这些错误的提示,您应该在同一“行”上只使用偶数个引号。可能您将不得不使用简单的引号来分隔双引号字符串中的字符串。

作为最后的建议,如果您的主机程序语言允许,那么多行字符串可能会比您所做的连接更具可读性。此外,这将避免您在示例中出现“缺少空格”错误(请参阅评论)。

于 2013-08-11T16:26:37.503 回答