У меня три таблицы в базе данных: 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?
Извините, похоже, нужно было лучше понять наложение псевдонимов. Это отлично работало:
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";