Ребят, всем привет. Ситуация следующая: Есть запрос к БД: PHP: SELECT * FROM workplaces JOIN users ON users.id = workplaces.u_id JOIN jobs ON jobs.id = workplaces.job_id WHERE workplaces.id = $id Он возвращает все правильно (синтаксис не учел, ибо пока что тестирую лишь в консоли mysql. Проблема тут в другом: В таблице workplaces есть столбец contract_id, который связан с users.id Как сделать запрос, чтобы он выводил не только JOIN users ON users.id = workplaces.u_id, но еще и JOIN users ON users.id = workplaces.contract_id Т.е. запрос (заведомо знаю, что неправильный, просто показать логику того, что мне нужно) выглядит примерно так: PHP: SELECT * FROM workplaces JOIN users ON users.id = workplaces.u_id, workplaces.contract_id JOIN jobs ON jobs.id = workplaces.job_id WHERE workplaces.id = $id Заранее спасибо! А то уже весь инет обошел кругами, не могу разобраться все равно(
Нет, это, к сожалению, не то. Запрос, который ты написал, ищет совпадения в 1 строке в таблице users, т.е. ищет строку, где users.id будет равен workplaces.u_id и workplaces.contract_id А строки users.id = workplaces.u_id users.id = workplaces.contract_id это 2 разные строки, которые выводят данные из таблицы users. Т.е. выведут данные о пользователях u_id и contract_id
OR вместо AND. Но это не хорошо уже. Убедитесь что индексы задействуются. Если нет (а скорее всего нет), то вероятно будет оптимальнее сделать 2 запроса через Union с разными условиями на join. И да, это опять же всё равно говорит о неграмотно проработанной структуре данных.
Код (Text): JOIN users ON users.id = workplaces.u_id JOIN users users_cont ON users_cont.id = workplaces.contract_id