2013-04-05 155 views
0

我想下面的查询查询结果为空结果

`select 
skillmgt.*, competences.Competence_Description 
from skillmgt 
inner join competences 
on skillmgt.eid=competences.competence_id 
where eid=121 and datename(yyyy,timestamp)=2013` 

查询成功运行,但是,尽管我有eid's这等于一些competence_id'swhere子句返回任何结果也是如此

其实,即使没有where条款,它也不起作用!

编辑:这样做解决了这个问题:

select skillmgt.*,competences.* from competences 
join skillmgt 
on competences.competence_id=skillmgt.cid 
where skillmgt.eid=121 and datename(yyyy,skillmgt.timestamp)='2013' 
+1

什么SQL风味/数据库您使用? – 2013-04-05 09:18:57

+0

@dystroy,我解决它通过改变检索的逻辑..有点不可思议,因为它应该从一开始...其实已经工作 非常感谢反正 – auicsc 2013-04-05 09:29:09

回答

2

datename返回一个字符串。根据您的SQL味道,你应该尝试

select 
skillmgt.*, competences.Competence_Description 
from skillmgt 
inner join competences 
on skillmgt.eid=competences.competence_id 
where eid=121 and datename(yyyy,timestamp)="2013" 
+1

,甚至当我尝试没有where子句中它不显示任何行! – auicsc 2013-04-05 09:14:18

+0

然后我们可能需要更多的信息,比如表结构和应该匹配的行的例子。 – 2013-04-05 09:16:33

0

试试这个代码:

select 
skillmgt.*, competences.Competence_Description 
from skillmgt,competences 
where skillmgt.eid = competences.competence_id 
...