У вас есть каталог для торговцев и другой каталог для торгов. Сделки должны появляться в каталоге сделок только один раз, чтобы сделать вашу БД более согласованной
Тогда у вас есть таблица «многие ко многим», которая соединяет таблицы «Сделки и мастера».
Если Мы хотим получить торговцев в соответствии с заданной сделкой на входе. Сначала мы должны знать идентификатор этой сделки, который должен быть уникальным, поэтому в вашей БД у вас будет что-то вроде img. ниже:

Теперь мы можем сделать запрос для выбора идентификатора сделки:
DECLARE @id_trade int = SELECT trade_id FROM trades WHERE trade_name LIKE '%plumbing%'
Как только мы узнаем торговлю id, мы можем перенаправить в таблицу 'master_tradesmen_trades', чтобы узнать имена людей, как работают, которые торгуют:
SELECT * FROM master_tradesmen_trades WHERE trade_id = @id_trade
Вы получите следующий результат:

Вы можете сказать: «Но с этим все еще что-то не так, поскольку я все еще не могу видеть торговцев», это момент, когда мы совершаем внутреннее соединение:
SELECT * FROM master_tradesmen_trades trades_and_tradesmen
INNER JOIN master_tradesman tradesmen
ON tradesmen.id = trades_and_tradesmen.master_tradesmen_id
WHERE trade_id = @id_trade
Если вам нужно увидеть указанные c столбцы, вы можете сделать:
SELECT first_name, last_name, city, state FROM master_tradesmen_trades trades_and_tradesmen
INNER JOIN master_tradesman tradesmen
ON tradesmen.id = trades_and_tradesmen.master_tradesmen_id
WHERE trade_id = @id_trade