繁体   English   中英

过滤具有多个表的产品列表

[英]Filtering a product list with multiple tables

首先,我对 php/mysql 很“新”。 我知道一些基本的东西,现在正在 Udemy 学习课程。 (提示总是受欢迎的)

我有以下问题:

  • 我想从多个表中生成一个文章列表:

该列表应包含我们的文章编号和 EAN,并且应仅包含尚未在供应商数据表中列出的文章(因此它将仅包含缺少供应商信息的文章)

表 1(文章数据库)

艺人 伊恩 价格
1000 1,99
1001 2,99
1002 2,99
2000 2,99
3000 2,99

表 2(供应商数据)

艺人 供应商 ID 供应商Artnr
1000 70
1000 60
1002 60
1002 70
1001 81

我现在尝试的:

SELECT a.artnr, a.ean
FROM ArticleDB AS a
JOIN SupplierData AS b ON a.artnr = b.artnr
WHERE a.artnr NOT IN
(
SELECT Artnr
FROM SupplierData
WHERE SupplierID = 70
);

但它一直给我一个包含其他供应商数据的列表。 虽然我希望它只给出 ArtibleDB 中的数字 + EAN,但在供应商数据中还没有供应商 ID 70 的条目

我试图得到的例子:

艺人 伊恩
1001
2000
3000

我错过了什么吗? 或者有人有其他想法如何使这项工作?

亲切的问候,
斯坦

我得到了答案(在测试和尝试时):

SELECT  a.artnr, a.ean
FROM    ArticleDB AS a
LEFT OUTER JOIN    SupplierDATA AS b ON a.artnr = b.artnr
WHERE   a.group != '---'
AND    a.group != 'TEC' 
AND    a.group != 'SER' 
AND a.artnr NOT IN
        (
            SELECT  Artnr
            FROM    SupplierData
            WHERE   SupplierID = 70
        )
      GROUP BY artnr
      ORDER BY artnr ASC;

似乎我不得不强迫它通过 artnr 分组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM