Объединить несколько таблиц MySQL

0

У меня три таблицы в базе данных: makers, parts, transfers.

Makers - makerid,stampname

Parts - это categories,name

variations - id, provider, recipient, part

Provider - указатель на makers/makerid а также recipients.

Мне нужно запросить, чтобы мой результат показывал дружественное имя по сравнению с кодированными/упрощенными идентификаторами базы данных.

Я пробовал несколько соединений, но мой запрос:

select makers.stampname as giver, makers.stampname as takers
from makers
   left join variations prov on prov.provider=makers.makerid
   left join variations recp on recp.recipient=makers.makerid limit 5;

дает одно и то же имя в обеих колонках. Если provider является makerid - recipient 24, а recipient является makerid 10, как мне получить запрос для ответа с совпадающим stampname от makers db?

Теги:
join

1 ответ

0

Извините, похоже, нужно было лучше понять наложение псевдонимов. Это отлично работало:

select variations.date,provider.stampname as provname ,
recipient.stampname as recipname, 
parts.name from variations 
left outer join 
makers provider on variations.provider = provider.makerid 
left outer join 
makers recipient on variations.recipient = recipient.makerid
left join categories parts on variations.part = parts.catid 
where variations.provider = "20" 
and 
variations.date="1944";

Ещё вопросы

Сообщество Overcoder
Наверх
Меню