我是编程和SQL的新手,非常抱歉,如果我没有包含足够的信息。SQL - 返回不包含特定行的表中的记录组
[我有这2个表由一个OrderID链接。表1包括OrderID和客户信息,例如名字,姓氏和地址。表2包括订单ID和订单详细信息,如项目名称,价格和数量。
每个订单ID表2中可能具有相同的OrderID多个ITEMNAME条目。] 1
CustInfo
OrderID FirstName LastName Address
1 Bob Pratt 123
2 Jane Doe 456
3 John Smith 789
4 Barbara Walters 147
订单
OrderID ItemName Price Quantity
1 Milk 4.00 1
1 Eggs 5.00 2
2 Cheese 5.00 1
2 Bread 5.00 1
3 Milk 4.00 2
4 Yogurt 5.00 2
我试图做一个查询,将发回每个订单的清单,列出OrderID和ItemName以及其他信息,只要该订单不包含特定类型的物品(这会在ItemName中)。所以如果一个OrderID包含2个ItemName,其中一个是我不想要的,那么整个订单(OrderID)就不应该显示在我的结果中。
例如,基于断IMG包括,如果我想显示所有的订单,只要他们没有牛奶作为ITEMNAME,结果应仅显示的OrderID 2和4
2 Cheese 5.00 1
2 Bread 5.00 1
4 Yogurt 5.00 2
这是我尝试过的,但是这将返回OrderIDs,即使Milk在技术上是该OrderID的一部分。
SELECT OrderID, FirstName, LastName, ItemName, Price, Quantity
FROM CustInfo
JOIN Orders
ON CustInfo.OrderID = Orders.OrderID
WHERE ItemName != 'Milk'
你能帮忙吗?
欢迎SO;在这里你可以找到一些有用的[问]和如何建立[mcve];一些出发点:将表格结构和样本数据发布为格式化文本,而不是图片,以便人们可以轻松构建测试用例,并发布您尝试的结果,错误和问题。 PS:是oracle还是mysql? – Aleksej
既然你说你是新手:[提出一个好的结构化查询语言(SQL)问题](http://meta.stackoverflow.com/a/271056/4955425) – sstan
我删除了不一致的数据库标记。请添加您实际使用的数据库的标签。 –