好的,所以我有一个包含optionID,optionName的表。它叫做user_options。我有一个包含userID,optionID的第二个表。它叫做user_selected_options。
user_options中的选项是为user_selected_options中的用户存储的,这很好。现在,在编辑用户时,我只想在user_selected_options中显示user_options中未为该用户选择的选项作为选择框。我怎么能这样做?
我希望这个问题有意义。如果不清楚,请告诉我,我会进一步解释。
感谢您的任何提示。
答案 0 :(得分:1)
以下是使用not exists
的一种方法:
select uo.*
from user_options uo
where not exists (select 1
from user_selected_options uso
where uso.optionId = uo.option_id and uso.userId = $userId
);
为获得最佳效果,请在user_selected_options(option_id, userId)
上创建索引。
答案 1 :(得分:0)
你可以在不使用mysql的命令中使用,例如:
select * from user_options where optionID NOT IN(select optionID from user_selected_options where userID=10)
查看有关NOT IN http://www.w3resource.com/mysql/comparision-functions-and-operators/not-in.php
的更多示例