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'
)