Mysql 如何从两个表中选择所需的行

Mysql 如何从两个表中选择所需的行,mysql,sql,Mysql,Sql,我的sql有问题。 我有两个名为treatments和treatmentusers的表。treatments表有两个字段,分别名为id和treatment。在treatmentusers中,我有3个字段id,userid,和treatmentid。我需要从treatment表中选择所有字段以及treatmentusers中的userid。但是有一个条件 仅为特定的用户ID选择行。(例如:仅限userid=1)。如果treatmentusers表中不存在useridtreatmentid组合,则单

我的sql有问题。
我有两个名为
treatments
treatmentusers
的表。
treatments
表有两个字段,分别名为
id
treatment
。在
treatmentusers
中,我有3个字段
id
userid
,和
treatmentid
。我需要从
treatment
表中选择所有字段以及
treatmentusers
中的
userid
。但是有一个条件

仅为特定的
用户ID
选择行。(例如:仅限
userid=1
)。如果
treatmentusers
表中不存在
userid
treatmentid
组合,则单元格值必须为
null
或0。

您只需使用左连接,并将userid要求作为ON子句的一部分

SELECT t.*, tu.userid
FROM treatments t
LEFT JOIN treatmentUsers tu 
    ON t.Id = tu.treatmentId 
    AND tu.userId = 1
如果treatmentusers表中的用户ID是数字类型,则

.....WHERE TU.userid = 1;

内部联接
只能检索左右表中匹配的行。aleks我不知道你为什么投了反对票。也许你不明白我的问题。我知道要编写连接操作,我也有查询选择tbl_treatments.id,tbl_treatments.treatment,tbl_treatmentusers.userid来自tbl_treatments左连接tbl_treatmentusers在tbl_treatmentusers.treatmentid=tbl_treatments.id。这其实不是我要找的。我需要找到userid=1或userid=null的行如果你在问题中包括你尝试了什么,结果是什么,以及你的目标与结果有什么不同,人们会更愿意帮助你。你很接近了。将“and userid=1”添加到您的加入条件中。@Dan Bracuk。我也试过了。但是我无法从治疗中获取在治疗用户中没有条目的行。我也需要将userid设置为null来获取这些行这不是解决方案:(
.....WHERE TU.userid = 1;