[英]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.