SQL 加入查询 returns null 而不是名称

SQL Join query returns null instead of names

我正在尝试加入两个 table 以获取未在副本 table 中借用的视频标题,我认为除了 [=20] =] 值 return 为空?我是 SQL 的新手,并不知道自己做错了什么,而不是它只是说 null 的实际名称。

SELECT 
   video.vidTitle, 
   video.vidCertificationID, 
   copy.copCurrentlyHired 
FROM video 
RIGHT JOIN copy ON video.vidVideoID = copy.copCopyID 
WHERE copCurrentlyHired = 1; 

SELECT 
   video.vidTitle, 
   video.vidCertificationID, 
   copy.copCurrentlyHired 
FROM video 
LEFT JOIN copy ON video.vidVideoID = copy.copCopyID 
  and copCurrentlyHired = 1; 
WHERE copy.copCopyID is null.

为什么?

  • LEFT vs RIGHT:无论如何,我们都想要视频中的所有记录,所以从视频到复制的左连接可以做到这一点。
  • WHERE 到 AND:这确保我们在加入那些未“当前雇用”的副本时仅获得当前雇用的副本,因此加入只会 return 当前雇用的副本。
  • WHERE:这确保我们只取回那些我们没有当前雇用记录副本的记录。但;这可能不是您真正想要的....

我担心的极端情况: 如果同一个视频 ID 有多个副本记录,并且一个当前已被雇用而另一个未被雇用。我不确定你希望在这种情况下发生什么。

也许您刚好在左联接之后,当前聘用的是 <> 1 w/o a where...

因此,具有预期结果的示例数据有助于我们了解您想要实现的目标。