另一个表中的用户选项:检查选项是否存在的最佳做法是什么?

时间:2009-05-12 09:14:51

标签: php mysql

我有几个选项,用户可以拥有,主要是为了验证他在网站上的存在。

表格是这样的:

用户:

id=1
username=stackoverflow
password=oSKAJMMS;
address=xyz
...

选项:

user_id=1
option=AD3

user_id=1
option=AC1

在某些时候,我需要检查他是否在“options”表中有一个特定选项(如:AD3,AC1等),并指出“options”表中不存在没有选项的用户。

最佳做法是什么?我虽然关于JOIN但是每次我读到stackoverflow时都会发现更简单,更有效的方法,所以我问你该怎么做!

1 个答案:

答案 0 :(得分:2)

SELECT  *
FROM    users u
WHERE   EXISTS (
        SELECT  1
        FROM    options o
        WHERE   o.user_id = u.id
                AND o.option = 'AC1'
        )

确保您在options (user_id, option)

上有索引