Mysql 检查where子句中的不同条件时出错
我试图从下面查询中包含的不同表中获取列值,但当我在where子句中检查不同的条件时,它给出了错误Mysql 检查where子句中的不同条件时出错,mysql,sql,Mysql,Sql,我试图从下面查询中包含的不同表中获取列值,但当我在where子句中检查不同的条件时,它给出了错误 sql = @"SELECT members.member_Id, members.member_Lastname, members.member_Firstname, members.member_PostCode"; sql += "," + "members.member_Reference, members.membe
sql = @"SELECT members.member_Id, members.member_Lastname, members.member_Firstname, members.member_PostCode";
sql += "," + "members.member_Reference, members.member_Dob, members.member_IsBiometric, mshiptypes.mshipType_Name, mshipstatustypes.mshipStatusType_Name";
sql += "," + "membertomships.memberToMship_EndDate";
sql += " "+"FROM members LEFT JOIN membertomships ON membertomships.member_Id = members.member_Id";
sql += " "+"LEFT JOIN mshipstatustypes ON mshipstatustypes.mshipStatusType_Id = membertomships.mshipStatusType_Id";
sql += " "+"LEFT JOIN mshipoptions ON mshipoptions.mshipOption_Id = membertomships.mshipOption_Id";
sql += " "+"LEFT JOIN mshiptypes ON mshiptypes.mshipType_Id = mshipoptions.mshipType_Id";
sql += " " + "WHERE memberToMship_PayMethod='Cash' AND mshipStausType_Name ='Live' AND mshipStatusType_Name = 'Defaulter' AND mshipStatusType_Name='Frozen'";
但它给出了这样的错误
Error Code: 1054
Unknown column 'mshipStausType_Name' in 'where clause'
有人能帮我吗?我正在使用mysql
这是一个修改过的查询,但它不会提取提供空列值的ant数据
sql = @"SELECT members.member_Id, members.member_Lastname, members.member_Firstname, members.member_PostCode";
sql += "," + "members.member_Reference, members.member_Dob, members.member_IsBiometric, mshiptypes.mshipType_Name, mshipstatustypes.mshipStatusType_Name";
sql += "," + "membertomships.memberToMship_EndDate";
sql += " "+"FROM members LEFT JOIN membertomships ON membertomships.member_Id = members.member_Id";
sql += " "+"LEFT JOIN mshipstatustypes ON mshipstatustypes.mshipStatusType_Id = membertomships.mshipStatusType_Id";
sql += " "+"LEFT JOIN mshipoptions ON mshipoptions.mshipOption_Id = membertomships.mshipOption_Id";
sql += " "+"LEFT JOIN mshiptypes ON mshiptypes.mshipType_Id = mshipoptions.mshipType_Id";
sql += " " + "WHERE membertomships.memberToMship_PayMethod='Cash' AND mshipstatustypes.mshipStatusType_Name='Live' AND mshipstatustypes.mshipStatusType_Name = 'Defaulter' AND mshipstatustypes.mshipStatusType_Name='Frozen'"
即使这已经被评论过了,我还是会发布一个答案。错误的原因是,您的
所在的表不包含mshipStausType\u Name
列。如前所述,并查看您的SQL,有一个对mshipStatusType\u Name
的引用,因此我还假设有拼写错误。如果列的拼写正确,则我认为编译器无法识别该列属于多个表中显示为列的表,所以请尝试在列之前使用表名
mshiptypes.mshipType_Name
在使用或时,mshipStatusType_名称中不可能有两个值
而不是像这样:
mshipStatusType_Name='value1' or mshipStatusType_Name='value2' ....
拼写错误?看起来应该是mshipStatusType_Name而不是mshipStatusType_Name,这表明在查询中使用的表中没有该列。检查列名拼写是否正确,或者是否已将表包含在该列中。mshipStausType\u name='Live'和mshipstatusype\u name='Defaulter'和mshipStatusType\u name='freezed'
对于表中的任何行都不会为真。也许(在固定列名后)您希望将这3个比较括起来,并将和更改为或…必须有一个成员具有mshipStausType\ U名称为默认值且处于活动状态,但它不提取成员记录…查询检查是否正确。。。。。