2015-02-23 4 views
0

Когда следующий запрос отправляется в моей базе данных: возвращаетсяНеоднозначное название столбца, но используйте «.». указать таблицу

SELECT statemachines.statemachinename, 
states.statename, 
actionhandlers.actionhandler, 
actions.value, actions.sourcename 
FROM actions, actionhandlers, states, statemachines 
INNER JOIN rules ON (actions.rule_id AND rules.rule_id) 
INNER JOIN actionhandlers ON (actions.actionhandler AND actionhandlers.actionhandler) 
INNER JOIN states ON (states.state_id AND actions.state_id) 
INNER JOIN statemachines ON (states.statemachinename AND statemachines.statemachinename) 
WHERE (rules.eventname = 'PIR') AND (statemachines.currentstate = states.state_id) 

следующая ошибка:

android.database.sqlite.SQLiteException: ambiguous column name: statemachines.statemachinename (code 1): , while compiling: 

Я понятия не имею, что делать, все другие мои запросы работают.

ответ

2

Simplify: FROM actions, actionhandlers, states, statemachines =>FROM actions

4

Вы используете statemachines дважды. Один раз в разделе JOIN и один раз в FROM.

Имя один из них:

... 
FROM actions, actionhandlers, states, statemachines AS statemachines1 
... 
+0

ли не признать, что это те же statemachines, можно просто удалить statemachines в моем из пункта? – ollie299792458

+0

Зависит от того, какой результат вы хотите. Я присоединяюсь или нет ... – jarlh

+1

Думаю, теперь я понимаю, мне нужно только объявить одну таблицу в списке, а остальные обнаружены, поскольку они становятся сосредоточенными (внутренними объединениями) – ollie299792458

Смежные вопросы