我有两个表一是索引,另一个是价格结构,如
table: index
columns: trandate, indexcode
table: price
Columns: truncate, symbol, price
我想知道缺少的价格。为此,我发出查询:
select i.trandate,i.indexcode,p.trandate,p.price
from index i
left join price p on i.trandate = p.trandate
where p.symbol='ABC' and indexcode="New"
即使价格表中缺少各种价格,上述查询也不会显示空日期。我理解的唯一原因是索引表没有符号字段,这就是原因...但是根据理论,如果你想要显示一个表的所有行而只显示另一个表的匹配值,那么使用左或右连接查询...请有人帮忙吗?
答案 0 :(得分:1)
如果你这样做
where p.symbol='ABC' and indexcode="New"
你只能获得符合的命中率。所以他们都必须有一个'ABC'符号。现在我不确定为什么你希望你的NULL值存在,如果你这样做,但我认为你的意思是这个?
where (p.symbol='ABC' OR p.symbol IS NULL) and indexcode="New"
答案 1 :(得分:1)
您必须将left join
ed表的条件移至left join
ON
部分:
select i.trandate,i.indexcode,p.trandate,p.price
from index i
left join price p on i.trandate = p.trandate and p.symbol='ABC'
where indexcode="New"