PHP JOIN - > <>另一张表的结果

时间:2015-11-30 17:22:23

标签: php sql

希望每个人都有一个很好的感恩节。我正在进行我的项目,并且我已经加入了我需要在一起的表格,以便正确地回应结果。

select *
from Customer 
    join Invoice
        on customer.listid = invoice.customerref_listid
    join InvoiceLineDetail
        on invoice.TxnID = invoicelinedetail.IDKEY
    join ItemInventory
        on invoicelinedetail.itemref_listid = iteminventory.listid
order by customer.name, CustomField12 asc

现在有了这些连接结果,有两个标记为

的字段

CustomerFirstName CustomerLastName ItemRef_FullNamecustomfield12Customfield12是一类产品。我希望能够从表格(ItemInventory)中提取客户尚未购买的产品。

我确信这是可能的,但我迷失在哪里开始或运营商使用?

表格(已加入)结果:

{
John    Doe         johndoe@aol.com Product:FrameSet1   Frame Sets
John    Doe2            johndoe2@aol.com    Product:FrameSet3   Outside Sets
}

表格结果(ItemInventory):

{
Frame Set Example 1         Product:FrameSet1           Frame Sets
Frame Set Example 2         Product:FrameSet2           Frame Sets
Frame Set Example 3         Product:FrameSet3           Outside Sets
Frame Set Example 4         Product:FrameSet4           Outside Sets
}

在上面的示例中,结果将显示客户遗失的项目,该项目与他/她之前购买的商品属于同一类别。他们还可以购买多个类别。

结果:

{    
John    Doe         johndoe@aol.com Product:FrameSet2   Frame Sets
John    Doe2            johndoe2@aol.com    Product:FrameSet4   Outside Sets
}

1 个答案:

答案 0 :(得分:0)

您可以在SQL中使用NOT IN子句,类似于:

select * from ItemInventory a , JoinedTables b
where 
a.category=b.category
and ItemID not in (Select ItemID from JoinedTables b where a.category=b.category)

如果您给我的表列,我可以调整SQL以反映正确的选择。 我假设您的类别字段名为category,您的商品ID为ItemID