[英]checking different conditions in where clause got error
我正在尝试从以下查询中包含的不同表中获取列值,但是当我检查 where 子句中的不同条件时,它会出错。
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'"
如果列的拼写是正确的,那么我认为编译器没有识别出该列属于哪个表,因为列出现在多个表中,所以尝试在列之前使用表名
mshiptypes.mshipType_Name
在您使用 OR 而不是 And 时,mshipStatusType_Name 中不可能有两个值,就像这样:
mshipStatusType_Name='value1' or mshipStatusType_Name='value2' ....
即使已对此发表评论,我也会发布答案。 错误是因为您where
的表不包含mshipStausType_Name
列。 正如所评论的那样,看看你的 SQL,有一个对mshipStatusType_Name
的引用,所以我也假设一个拼写错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.