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