【发布时间】:2016-05-08 16:05:26
【问题描述】:
所以这基本上就是问题所在(我将把它变成一个更普遍的问题,以防人们将来需要这样的东西)。
我有一张桌子(“人”),基本上就是这样
╔══════════╦═══════╗
║ PersonID ║ Letter║
╠══════════╬═══════╣
║ 1 ║ A ║
║ 1 ║ B ║
║ 1 ║ C ║
║ 1 ║ D ║
║ 2 ║ A ║
║ 2 ║ B ║
║ 2 ║ C ║
║ 3 ║ B ║
║ 3 ║ C ║
║ 4 ║ A ║
║ 4 ║ C ║
║ 4 ║ D ║
║ 5 ║ E ║
╚══════════╩═══════╝
假设我有另一个表(“字母”),它可以列出一个人可以拥有的所有可能的“字母”。
╔══════════╦══════╗
║ LetterID ║ Text ║
╠══════════╬══════╣
║ 1 ║ A ║
║ 2 ║ B ║
║ 3 ║ C ║
║ 4 ║ D ║
║ 5 ║ E ║
╚══════════╩══════╝
我需要创建一个新表,其中列出所有人员以及他们没有的字母。所以对于这个例子,结果是这样的
╔══════════╦══════════════╗
║ PersonID ║ LetterNotHad ║
╠══════════╬══════════════╣
║ 1 ║ E ║
║ 2 ║ D ║
║ 2 ║ E ║
║ 3 ║ A ║
║ 3 ║ D ║
║ 3 ║ E ║
║ 4 ║ B ║
║ 4 ║ E ║
║ 5 ║ A ║
║ 5 ║ B ║
║ 5 ║ C ║
║ 5 ║ D ║
╚══════════╩══════════════╝
非常感谢任何和所有帮助或指导。
编辑:这基本上是我正在尝试的,类似这样的
select p.PersonId, l.value
from letters l
left join people p
on l.Text = p.Letter
where p.personid is null
【问题讨论】:
-
您已将此标记为 MySQL 和 SQL-Server(-2008),它是什么?
标签: mysql sql sql-server database sql-server-2008