Python & SQLite
Добавлено: 06 фев 2014, 12:23
Что-то я недопонимаю, но может кто то уже сталкивался - один и тот же SQL запрос сделанный из разных мест возвращает различные результаты:
1) Запрос сделанный в SQLite Expert Personal возвращает все записи для (T_REG_TYPE.[C_REN_NAME] = 'EAX' и T_REG_TYPE.[C_REN_NAME] = 'arg_00';
2) Запрос сделанный в SQLite Manager (Firefox)Personal возвращает сначала все записи для (T_REG_TYPE.[C_REN_NAME] = 'EAX' а потом в каком то странном и неупорядоченном порядке T_REG_TYPE.[C_REN_NAME] = 'arg_00';
3) Запрос сделанный питоновском скриптике все записи для (T_REG_TYPE.[C_REN_NAME] = 'EAX' только!
Что происходит и почему результаты не идетичены?
Код: Выделить всё
select
T_CALLS.[FN], T_CALLS.[OP_TYPE], T_CALLS.[CALLER_A],T_CALLS.[CALLER_N], T_CALLS.[CALLEE_A],T_CALLS.[CALLEE_N],
T_REG_TYPE.[C_REN_NAME], T_DATA.[I_VALUE],T_DATA.[C_VALUE]
FROM T_CALLS
NATURAL JOIN T_CALLS
NATURAL JOIN T_DATA
NATURAL JOIN T_REG_TYPE
/*NATURAL JOIN T_OP_TYPE*/
WHERE (T_CALLS.[CALLEE_N] LIKE '%new%')
AND T_REG_TYPE.[I_REG_TYPE] = T_DATA.[I_REG_TYPE]
AND T_CALLS.[OP_TYPE] = 2 /* ret */
AND (
((T_REG_TYPE.[C_REN_NAME] = 'arg_04') AND (T_DATA.[I_PAR_INDEX] = 1)) OR
((T_REG_TYPE.[C_REN_NAME] = 'arg_00') AND (T_DATA.[I_PAR_INDEX] = 1)) OR
((T_REG_TYPE.[C_REN_NAME] = 'EAX') AND (T_DATA.[I_PAR_INDEX] = 0)))2) Запрос сделанный в SQLite Manager (Firefox)Personal возвращает сначала все записи для (T_REG_TYPE.[C_REN_NAME] = 'EAX' а потом в каком то странном и неупорядоченном порядке T_REG_TYPE.[C_REN_NAME] = 'arg_00';
3) Запрос сделанный питоновском скриптике все записи для (T_REG_TYPE.[C_REN_NAME] = 'EAX' только!
Что происходит и почему результаты не идетичены?