SQLite для нескольких таблиц INNER JOIN с ошибками USING (...) - PullRequest
2 голосов
/ 26 июля 2010

Я пытаюсь выполнить запрос к базе данных SQLite, в которой INNER JOIN две дополнительные таблицы:

SELECT
    usages.date AS date,
    usages.data AS data,
    stores.number AS store,
    items.name AS item
FROM usages
INNER JOIN stores USING (store_id)
INNER JOIN items USING (item_id)

Однако я получаю сообщение об ошибке

SQL error: cannot join using column item_id - column not present in both tables

Я знаю, что яможно использовать явное INNER JOIN stores ON usages.store_id = stores.store_id (и это работает), но: почему запрос USING вызывает ошибку в SQLite?

На MySQL это не так ...

Я должен отметить:
Это не проблема для меня, так как я использую синтаксис ON, но я хотел бы знать, почему это происходит.

1 Ответ

3 голосов
/ 26 июля 2010

Итак, у вас есть:

INNER JOIN items USING (item_id)

... и вы получите сообщение об ошибке:

Ошибка SQL: невозможно объединить, используя столбец item_id - столбец отсутствует в обеих таблицах

Это должно быть одно из минимум загадочных сообщений об ошибках, которые я видел.
Что мне не нравится, так это то, что мне непонятно, какой стол сравнивается с ITEMS.item_id - это STORES или USAGES? Вот почему я воздерживаюсь от синтаксиса объединения USING или NATURAL ...

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