@LemanRass21

Как правильно сформулировать SQL запрос с учетом JOIN`ов?

Здравствуйте.
На базовом уровне с JOIN`ами я работаю хорошо, но тут, кажется, не совсем тривиальная задача.
Есть таблица contracts, вот ее поля:
id, vendor, purchaser - ну и еще пару штук.
Есть таблтца companies где есть всего 2 поля
id, label

В первой таблице, 2 поля (vendor и purchaser) это id-шники компаний из таблицы companies.
Мне надо выполнить запрос так, что бы достать несколько записей из таблицы contracts где vendor и purchaser будут заменены на соответствующие названия компаний из таблицы companies (поле label).

Вот моя самая лучшая но все равно не рабочая попытка:
SELECT 
contracts.id, 
companies.label AS 'vendor',
companies.label AS 'purchaser', 
contracts.label, 
contracts.amount, 
contracts.status, 
contracts.created, 
contracts.delivered 
FROM 
contracts
INNER JOIN 
companies
ON
contracts.vendor = companies.id
AND
contracts.purchaser = companies.id
WHERE 
contracts.id=15

Запрос выполняется, но оба поля подменяются на значение только из первого JOIN`а.
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
tsklab
@tsklab
Здесь отвечаю на вопросы.
Это одно соединение.
Два:
SELECT contracts.id, 
c1.label AS 'vendor',
c2.label AS 'purchaser', 
contracts.label, contracts.amount, contracts.status, contracts.created, contracts.delivered 
FROM contracts
INNER JOIN companies AS c1 ON contracts.vendor = c1.id
INNER JOIN companies AS c2 ON contracts.purchaser = c2.id
WHERE contracts.id=15
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы