以下是我在dB2中加入连接的sql语句。
select name, address, bloodgroup
from user_tb, health_tb
where user_tb.id = health_tb.id;
我收到以下错误:
“health_tb.id”在使用它的上下文中无效。 SQLCODE = -206,SQLSTATE = 42703,DRIVER = 4.12.79
我理解我之所以遇到此错误的一个原因是因为health_tb中可能不存在id,但事实并非如此。我希望有人可以提供建议。谢谢。
答案 0 :(得分:1)
首先,您应该学习使用现代连接语法,尽管这与您的问题无关:
select name, address, bloodgroup
from user_tb join
health_tb
on user_tb.id = health_tb.id;
Google上的简单搜索向我发出documentation这个错误。它提到的第一件事是:
此错误的可能原因包括:
指定的列不是任何源或目标的列 声明的表格或视图。
- 在SELECT或DELETE语句中,指定的列不是FROM中标识的任何表或视图的列 声明中的条款。
- SQL数据更改语句的列列表,指定目标表的列名称或语句视图。
我怀疑id
列真的被称为user_id
。工作查询可能如下所示:
select name, address, bloodgroup
from user_tb join
health_tb
on user_tb.id = health_tb.user_id;
答案 1 :(得分:0)
1)检查两个表中的id列是否具有相同的数据类型 2)检查列名称中是否有任何尾随空格
select '<' || column_name || '>' from user_tab_columns
where tbname = 'health_tb'
答案 2 :(得分:0)
如果将id
列定义为不同类型,则可能会出现问题。