Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 另一个表中的用户选项:检查选项是否存在的最佳实践是什么?_Php_Mysql - Fatal编程技术网

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

Php 另一个表中的用户选项:检查选项是否存在的最佳实践是什么?,php,mysql,Php,Mysql,我有几个用户可以选择的选项,主要是验证他在站点中的存在 表格如下: 用户: id=1 username=stackoverflow password=oSKAJMMS; address=xyz ... 选项: user_id=1 option=AD3 在某些时候,我需要检查“选项”表中是否有特定选项(如:AD3、AC1等),注意“选项”表中根本不存在没有选项的用户 这方面的最佳做法是什么?我想加入,但每次我读stackoverflow我发现更简单,更有效的方法,所以我问你我应该怎么做 SE

我有几个用户可以选择的选项,主要是验证他在站点中的存在

表格如下:

用户:

id=1
username=stackoverflow
password=oSKAJMMS;
address=xyz
...
选项:

user_id=1
option=AD3

在某些时候,我需要检查“选项”表中是否有特定选项(如:AD3、AC1等),注意“选项”表中根本不存在没有选项的用户

这方面的最佳做法是什么?我想加入,但每次我读stackoverflow我发现更简单,更有效的方法,所以我问你我应该怎么做

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

确保您在
选项(user\u id,option)

上有索引谢谢,我第一次尝试没有索引,查询耗时33秒!我还了解到,您可以设置用户u并在查询中使用u,我从来都不知道这样的事情,谢谢!
SELECT  *
FROM    users u
WHERE   EXISTS (
        SELECT  1
        FROM    options o
        WHERE   o.user_id = u.id
                AND o.option = 'AC1'
        )