麻烦与三个表连接上的select语句

时间:2013-04-29 12:04:04

标签: sql hsqldb

我试图编写一个查询,它将从三个不同的表中返回一组列。

其他两个表之间链接的表称为Table_A,它包含其他两个表的键。 第二个表称为Table_B,最后一个表称为Table_C。

Table_A列。

  

| a_ID(主键)| b_ID(外键)| C_ID   (外键)| .......

表_B栏

  

| b_ID(主键)| b1 | b2 | ...... |

Table_C列

  

| c_ID(主键)| c1 | c2 | ...... |

这是我下面的SQL查询。 (我只关注上面的列,尽管每个表中都有更多。)

SELECT b.b_ID
     , b.b1
     , b.b2
     , a.a_ID
     , c.c1
     , c.c2 
FROM Table_A AS a 
    JOIN Table_B AS b ON a.b_ID = b.b_ID
    JOIN Table_C AS c ON a.c_ID = c.c_ID

我在我的项目中使用开放式办公室,我得到的错误是

  

“语句中未找到表[SELECT b.b_ID            ,b.b1            ,b.b2            ,a.a_ID            ,c.c1            ,c.c2       FROM Table_A AS a           JOIN Table_B AS b ON a.b_ID = b.b_ID           JOIN Table_C AS c ON a.c_ID = c.c_ID]“

出于某种原因,如果我更改select语句只是为了获取所有列( * ),它会返回正确的结果,但我需要将其缩小到我的查询中列出的列。 *

SELECT *
FROM Table_A AS a 
    JOIN Table_B AS b ON a.b_ID = b.b_ID
    JOIN Table_C AS c ON a.c_ID = c.c_ID'

编辑:我删除了实际的表名和列名,这样您就不必了解故事来帮助解决问题。

1 个答案:

答案 0 :(得分:0)

你的WHERE子句不应该是:

WHERE b.eventStartDate > '2013-10-01'

这是一种“点差异”的问题......