0

我创建了以下查询。

SELECT users.id, users.email, aucs.winner_id, aucs.beginner, accounts.user_id
FROM users, aucs, accounts
WHERE users.id
IN (
aucs.winner_id
)
AND users.id NOT 
IN (
accounts.user_id
)
AND aucs.beginner =  '1'

我想选择仅出现在 aucs 表中的获胜者 ID 列中的用户电子邮件地址,其中 aucs.beginner 也应等于“1”,并且该用户 ID 在帐户表中不可用。我已经写了我放在上面的查询不起作用。

4

2 回答 2

1
SELECT  DISTINCT
        users.id, 
        users.email, 
        aucs.winner_id, 
        aucs.beginner, 
        accounts.user_id
FROM    users
        INNER JOIN aucs 
            ON users.id = aucs.winner_id 
        LEFT JOIN accounts 
            ON aucs.winner_id = accounts.user_id AND 
               aucs.beginner =  '1'
WHERE   accounts.user_id IS NULL

要进一步了解有关联接的更多信息,请访问以下链接:

于 2013-04-18T09:21:45.473 回答
1

这是我的想法,您不需要accounts.user_id,因为您希望获取帐户中不存在user_id 的记录。

SELECT users.id as users_id, users.email, aucs.winner_id, aucs.beginner
FROM users
LEFT JOIN aucs
ON aucs.winner_id = users.id
LEFT JOIN accounts
ON accounts.user_id = users.id
WHERE aucs.beginner = '1' AND accounts.id IS NULL
GROUP BY users.id
HAVING COUNT(aucs.winner_id) = 1
于 2013-04-18T09:30:44.207 回答