в appcelerator titanium sql left join не работает - PullRequest
1 голос
/ 21 декабря 2011

Я работаю над APPCELERATOR TITANIUM.

Я использую базу данных, в которой, как ни странно, некоторые sql-запросы не работают должным образом, например:

db.execute("SELECT Location_Diners.Dining_Time,Location_Diners.First_Name,Location_Diners.Last_Name,Location_Diners.PartySize,Location_Diners.Diner_ID,Location_Diners.DinerStatusColor_ID,Location_Diners.Notes,Location_Diners.Diner_ID,Location_SeatedDiners.Table_ID FROM Location_Diners LEFT JOIN Location_SeatedDiners ON Location_Diners.Diner_ID=Location_SeatedDiners.Diner_ID");

это ошибка, которую я получаю, пожалуйста, помогите мне здесь .....

2011-12-21 11:47:29.416 abc[5254:ac03] [ERROR] A SQLite database error occurred on database '/Users/../iPhone Simulator/4.3.2/Applications/C377123C-7A2A-4FDF-9314-428713C885FD/Library/Application Support/database.sql': Error Domain=com.plausiblelabs.pldatabase Code=3 "An error occured parsing the provided SQL statement." UserInfo=0x6ad4330 {com.plausiblelabs.pldatabase.error.vendor.code=1, NSLocalizedDescription=An error occured parsing the provided SQL statement., com.plausiblelabs.pldatabase.error.query.string=SELECT Location_Diners.Dining_Time,Location_Diners.First_Name,Location_Diners.Last_Name,Location_Diners.PartySize,Location_Diners.Diner_ID,Location_Diners.DinerStatusColor_ID,Location_Diners.Notes,Location_Diners.Diner_ID,Location_SeatedDiners.Table_ID FROM Location_Diners LEFT JOIN Location_SeatedDiners ON Location_Diners.Diner_ID=Location_SeatedDiners.Diner_ID, com.plausiblelabs.pldatabase.error.vendor.string=no such table: Location_Diners} (SQLite #1: no such table: Location_Diners) (query: 'SELECT Location_Diners.Dining_Time,Location_Diners.First_Name,Location_Diners.Last_Name,Location_Diners.PartySize,Location_Diners.Diner_ID,Location_Diners.DinerStatusColor_ID,Location_Diners.Notes,Location_Diners.Diner_ID,Location_SeatedDiners.Table_ID FROM Location_Diners LEFT JOIN Location_SeatedDiners ON Location_Diners.Diner_ID=Location_SeatedDiners.Diner_ID')
[ERROR] invalid SQL statement. Error Domain=com.plausiblelabs.pldatabase Code=3 "An error occured parsing the provided SQL statement." UserInfo=0x6ad4330 {com.plausiblelabs.pldatabase.error.vendor.code=1, NSLocalizedDescription=An error occured parsing the provided SQL statement., com.plausiblelabs.pldatabase.error.query.string=SELECT Location_Diners.Dining_Time,Location_Diners.First_Name,Location_Diners.Last_Name,Location_Diners.PartySize,Location_Diners.Diner_ID,Location_Diners.DinerStatusColor_ID,Location_Diners.Notes,Location_Diners.Diner_ID,Location_SeatedDiners.Table_ID FROM Location_Diners LEFT JOIN Location_SeatedDiners ON Location_Diners.Diner_ID=Location_SeatedDiners.Diner_ID, com.plausiblelabs.pldatabase.error.vendor.string=no such table: Location_Diners} in -[TiDatabaseProxy execute:] (TiDatabaseProxy.m:136)

любая помощь высоко ценится ................

Ответы [ 2 ]

5 голосов
/ 21 декабря 2011

Эй, Пратик, я думаю, тебе следует использовать LEFT OUTER JOIN. Проверьте это,

Какие объединения поддерживает SQLite?

В соответствии с этим LEFT JOIN = LEFT OUTER JOIN, но в SQLite3 поддерживается ключевое слово LEFT OUTER JOIN.

0 голосов
/ 21 декабря 2011

Как видно здесь вам нужно сделать LEFT OUTER JOIN следующим образом:

SELECT Location_Diners.Dining_Time,
  Location_Diners.First_Name,
  Location_Diners.Last_Name,
  Location_Diners.PartySize,
  Location_Diners.Diner_ID,
  Location_Diners.DinerStatusColor_ID,
  Location_Diners.Notes,
  Location_Diners.Diner_ID,
  Location_SeatedDiners.Table_ID
FROM Location_Diners
LEFT OUTER JOIN Location_SeatedDiners ON Location_Diners.Diner_ID=Location_SeatedDiners.Diner_ID
...