在 SQL 中加入列表数据

Listing data with join in SQL

我有以下关于在 SQL 中连接表格的问题:

列出 13.05.2003 上所有未售出的 products。考虑到表 OrdersLineItemProduct

我的编码如下:

SELECT p.Pid, p.Label
 from Product p natural join line_item l
natural join Orders
where Date <> "2003-05-13"

问题是,当我执行这段代码时,它看起来应该是更多的数据,我不确定如何使用 join.

删除重复项

提前致谢

使用NOT EXISTS更安全。例如:

select *
from product p
where not exists (
  select null 
  from lineitem i
  join orders o on o.oid = l.oid and l.pid = p.pid
  where date <> "2003-05-13"
)

或者您可以使用 NOT IN:

select *
from product 
where pid not in (
  select l.pid
  from lineitem i
  join orders o on o.oid = l.oid
  where date <> "2003-05-13"
)

最后我尝试了以下方法并且有效:

select product.pid, product.label
from ((product  inner join line_item on product.pid = line_item.pid) inner join orders on orders.oid = line_item.oid)
where not orders.date ='2003-05-13'
group by product.pid;

非常感谢您的回答,他们帮助我找到了解决问题的正确途径