繁体   English   中英

检查 where 子句中的不同条件出错

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM