В своем запросе вы выбираете из двух таблиц. Один из них - xymply_categoryf_key
, другой - JOIN
из двух экземпляров xymply_categories
. Вы используете два экземпляра одной и той же таблицы, поэтому, когда вы пишете xymply_categories.id
, не ясно, какой экземпляр вы имеете в виду - тот, который является первым аргументом JOIN
, или тот, который является вторым аргументом? Вот что означает "Not unique table/alias"
. Если я правильно понимаю, что вы хотите сделать, попробуйте это:
SELECT c.id, c.name FROM xymply_categories c, xymply_categoryf_key k WHERE c.id = k.catid AND k.locid = 1;
Это было сделано без JOIN, хотя оценка
WHERE c.id = k.catid
может быть, будет быстрее с JOIN
, я не уверен. Также обратите внимание на использование k
и c
в качестве псевдонимов для таблиц xymply_categoryf_key
(k
для ключа) и xymply_categories c
(c
для категорий). Вот как можно избежать проблемы «Неуникальная таблица / псевдоним», которая возникала у вас раньше. В вашем случае вы будете использовать, например,
xymply_categories a JOIN xymply_categories b WHERE a.id = ...
Итак, хотя я привел пример, как написать запрос без использования JOIN
- как я уже говорил, использование JOIN
может привести к более быстрому запросу. Поэтому все, что вам нужно сделать, это добавить псевдонимы.