Join SQL语法挑战

Join SQL语法挑战,join,checkbox,sql,Join,Checkbox,Sql,我有两个表,其中一个包含用户可以从中选择的不同选项列表。例如: tbl_选项 id_选项 选择权 下一个表用于存储用户选择的选项。例如: 待定 已选择id\u id_选项 id\u用户 我使用PHP在tbl_选项表中循环生成一个完整的复选框列表,用户可以从中进行选择。当用户选择一个选项时,id_选项和id_用户存储在tbl_selected表中。当用户取消选择某个选项时,将从tbl_selected表中删除id_selected记录 我面临的挑战是检索tbl_选项中的完整选项列表的最佳方法,以及

我有两个表,其中一个包含用户可以从中选择的不同选项列表。例如:

tbl_选项 id_选项 选择权

下一个表用于存储用户选择的选项。例如:

待定 已选择id\u id_选项 id\u用户

我使用PHP在tbl_选项表中循环生成一个完整的复选框列表,用户可以从中进行选择。当用户选择一个选项时,id_选项和id_用户存储在tbl_selected表中。当用户取消选择某个选项时,将从tbl_selected表中删除id_selected记录

我面临的挑战是检索tbl_选项中的完整选项列表的最佳方法,以及让查询指示存储在tbl_selected表中的关联记录

我已经尝试将tbl_选项左键连接到tbl_selected,这为我提供了完整的选项列表,但只要我添加WHERE id_user=查询就只返回那些在tbl_selected中有值的记录。理想情况下,我希望看到以下查询结果:

id\u选项OptionID\u用户 1应用程序3 2范围3 3香蕉 4耳 5每个人3 这表明用户3已经储存了苹果、桔子和桃子。这也表明用户3没有选择香蕉或梨


这可能是使用SQL语句实现的,还是我应该采用另一种技术?

您的问题是用户限制应用于整个查询。要仅将其应用于联接条件,需要将其添加到ON子句中,如下所示:

select o.id_option, o.[option], s.id_user
from tbl_options o
    left outer join tbl_selected s
        on o.id_option = s.id_option and s.id_user = 3

完美-简单,正如预期的那样,我学到了一些新的东西。谢谢大家!@古纳:在我弄明白答案之前我也不知道,所以谢谢你的提问:-