Ошибка при извлечении запроса MySQL из 3 таблиц - PullRequest
0 голосов
/ 02 августа 2009

Мой запрос выглядит следующим образом:

"SELECT config.*, utinfo.* userinfo.* "."FROM config, utinfo, userinfo "."WHERE config.cxid = utinfo.xid"."AND utinfo.uid = userinfo.id"

До того как я добавил

, все работало нормально
."AND utinfo.uid = userinfo.id"

часть в конце.

Более простой способ сделать это? Или что-то мне не хватает?

1 Ответ

5 голосов
/ 02 августа 2009

пробел:

"WHERE config.cxid = utinfo.xid "
                               ^ - add space here

Edit:

Поскольку это само по себе не является проблемой, я сделаю обоснованное предположение о том, чего вы действительно пытаетесь достичь. Мне кажется, что вы пытаетесь выбрать все записи в utinfo, которые имеют config ID, и те, которые имеют userinfo ID. INNER JOIN будет лучшим способом справиться с этим:

SELECT *
FROM utinfo
INNER JOIN config ON config.cxid = utinfo.xid
INNER JOIN userinfo ON userinfo.id = utinfo.uid

Кроме того, в производственных средах я бы держался подальше от SELECT *, так как это могло бы сломать ваше приложение, если вы добавите или удалите столбец в базе данных.

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