проверка различных условий, где пункт получил ошибку - PullRequest
0 голосов
/ 05 июля 2011

Я пытаюсь получить значения столбцов из разных таблиц, включенных в приведенный ниже запрос, но когда я проверяю различные условия, в которых предложение 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 ...

это си измененный запрос, но он не извлекает данные муравей, он давал пустые значения столбца

                                              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'"

Ответы [ 2 ]

1 голос
/ 05 июля 2011

если орфография столбца правильная, то я думаю, что компилятор не определил, что столбец принадлежит к какой таблице, как столбец появляется в нескольких таблицах, поэтому попробуйте использовать имя таблицы перед столбцом, например

mshiptypes.mshipType_Name

Нетвероятность того, что в mshipStatusType_Name есть два значения, в то время как вы используете ИЛИ вместо И нравится:

mshipStatusType_Name='value1' or mshipStatusType_Name='value2' ....
0 голосов
/ 05 июля 2011

Даже если это было прокомментировано, я выложу ответ. Ошибка в том, что таблица, на которую действует ваш where, не содержит столбец mshipStausType_Name. Как прокомментировано и, глядя на ваш SQL, есть ссылка на mshipStatusType_Name, поэтому я бы также допустил орфографическую ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...