【发布时间】:2014-11-06 01:36:38
【问题描述】:
我在尝试使用 JOIN 方法解决此问题时遇到了一些麻烦。也许我没有使用正确的 JOIN 类型?当我使用传统方法时,查询可以正常执行,其语法如下所示:
SELECT cr.criminal_id, cr.last, cr.first, c.classification, c.date_charged, cc.crime_code,
cc.fine_amount
FROM criminals cr, crimes c, crime_charges cc
WHERE classification = 'O'
ORDER BY cr.criminal_id, c.date_charged;
但是当我尝试使用 JOIN 方法时,我收到一条错误消息,显示 ORA-0095:缺少关键字。我认为这是因为我对 JOIN 关键字不够具体?但我不知道我应该在它前面放什么(如果有的话)。这是给我错误的代码:
SELECT cr.criminal_id, cr.last, cr.first, c.classification, c.date_charged, cc.crime_code
cc.fine_amount
FROM criminals cr JOIN crimes c (using criminal_id)
JOIN crime_charges cc (using crime_id)
WHERE classification = 'O'
ORDER BY cr.criminal_id, c.date_charged;
问题是我应该列出我已经在 SELECT 语句中选择的列,然后只包括归类为“其他”的罪行(由“O”指定)。然后我应该按犯罪ID和指控日期来组织清单。相当基本的东西(这就是为什么我无法让它工作让我发疯的原因!)。
【问题讨论】:
-
你的“传统方法”没有加入任何东西;它只是从单独的表中选择不相关的列。如果您使用的是 Oracle,则 MySQL 和 SQL Server 标签不适用 - 它们是完全不同的产品,并且三者不等效。使用实际适用于您的问题的标签。如果您不确定,请在使用前阅读标签的说明。在此站点中搜索
[oracle] JOIN(包括方括号) - 有许多现有问题提供了正确语法的示例。来……让我为你做。