SQL Server:使用条件加入

时间:2015-12-30 21:39:35

标签: sql-server join

我有一个相当简单的SQL问题。我有一个查询从多个表中提取数据。刚收到一个新请求加入另一个表。这里创建了一个简化版http://sqlfiddle.com/#!6/f9698/4

我想要左侧(is.odd <- function(x) x %% 2 == 1 apply(new, 1, function(x) { toremove <-which(is.na(x)) toremove1<-sapply(toremove,function(x) ifelse(is.odd(x),x+1,x-1) ) ref[,!(1:ncol(ref) %in% c(toremove,toremove1)),drop=F] }) )表中的所有记录。每个Prod1 ProdAttr表上会有多个条目。但是我想在以下查询中仅提取条件符合的那些。我不确定我是否应该使用加入或联盟!请指教。

ProdID

感谢。

1 个答案:

答案 0 :(得分:1)

left join失败时,ProdAttr表格中的列会被null填充。在这些情况下,您where会过滤掉行,因为null既不是4也不是68:

where AttrID= 4 and AttrVal=68;

将条件移至on子句,如:

select P1.*, PA.AttrDesc from prod1 P1
  left join ProdAttr PA
  on P1.ProdID = PA.ProdID
     and AttrID= 4 and AttrVal=68;

现在条件仅用于查找ProdAttr中的行,而不是prod1ProdAttr之间的联接结果的过滤器。