- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难准确地表达我的问题所在,但我会尽力而为。我在 Visual Studio 中使用 C#,连接到 SQL 数据库。
我有一个旧书店数据库,卖家可以进来把他们的书给我们,让我们为他们销售。关键表有3个:
我们可以假设原始卖家绝不会将同一本书出售两次。
当顾客来买书时,店员会通过两个下拉列表来查找每本书。第一个 DDL 填充了系统中有一本书的每个 ISBN,如下所示。 (如果不存在,则无需列出 ISBN!)
SELECT DISTINCT [ISBN] FROM [Copy] ORDER BY [ISBN]
第二个下拉列表应该填充每个销售具有相同 ISBN 图书的卖家的卖家 ID。但是,我们不想列出任何已售出图书的卖家 ID。下面是对我来说最有意义的 select 语句,但我不认为逻辑是完美的。
SELECT [SSID] FROM [Copy] WHERE (SSID, ISBN NOT IN (SELECT SSBID, ISBN FROM Sold)) AND ([ISBN] = @ISBN) ORDER BY [SSID]
因此,我们不想在 Copy 和 Sold 中提取任何具有相同唯一 SSID 和 ISBN 组合的记录,同时只显示与我们已经选择的 ISBN 相对应的记录。
第二个查询应该是什么样的?SSID 和 SSBID 名称不同会影响查询功能吗?
为清楚起见,这里是 Copy 和 Sold 的粗略布局:
复制
- SSID_______ISBN
- 115________019
- 115________528
- 123________528
- 503________019
已售出
- SSBID_____ISBN
- 115_______019
所以在我的第一个下拉列表中选择“115”后,第二个下拉列表应该只填充“528”。
最佳答案
如果我理解正确,你想在 ISBN
上加入 Sold
和 Copy
,除非 Sold< 中都有记录
和 Copy
匹配ISBN
和 SSID
。我可能离得很远,但也许这会有所帮助。
SELECT b.ISBN, b.SSID
FROM
Books b
JOIN Sold s on b.ISBN = s.ISBN
JOIN Copy c on b.ISBN = c.ISBN
LEFT JOIN Sold s2 on b.ISBN = s2.ISBN and b.SSID = s2.SSID
LEFT JOIN Copy c2 on b.ISBN = c2.ISBN and b.SSID = c2.SSID
WHERE s2.ISBN is null or c2.ISBN is null
这将加入 ISBN
上的 Sold
和 Copy
,但排除 Books
匹配两者的记录两个领域的表格。
关于c# - 如何从表中选择所有 SQL 行(具有两列的唯一组合),其中相同的组合不在另一个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829790/
我是一名优秀的程序员,十分优秀!