我在MySQL中有3個表,我需要找到用戶沒有特定小部件的所有實例。MySQL連接3個表並在一個表中找到「缺失」行
例子:
Users
tenant_id user_id user_name
1 1 Bob
1 2 Fred
1 3 John
1 4 Tom
Widgets
tenant_id widget_id widget_name
1 1 Red
1 2 Blue
1 3 Green
1 4 Black
Usage
tenant_id user_id widget_id
1 1 1
1 1 2
1 1 4
1 2 2
1 2 3
1 2 4
1 3 1
1 3 2
1 3 3
1 3 4
1 4 1
1 4 2
1 4 3
Missing in table three are:
user_name widget_name
Bob Green
Fred Red
Tom Black
我想使用的查詢是:
SELECT
user_name, widget_name
FROM
users left join widgets on users.tenant_id=widgets.tenant_id
WHERE
NOT EXISTS (
SELECT 1 FROM usage WHERE user_id = users.user_id AND widget_id = widgets.widget_id
) and users.tenant_id=1
當查詢完成它帶回一個巨大的用戶名和widget的名字,但許多數百名單不是我期望。
我不確定連接是錯誤的還是需要對結果進行某種分組?
你會得到什麼結果?請在您的答案中包含該信息或設置一個SQL小提琴。 –