Troy Bryant Ответов: 1

SQL если и возвращать данные


Привет -

Я вообще не очень хорошо разбираюсь в sql. Тем не менее, я объясню свою структуру таблицы и проблему.

У меня есть таблица технической станции, которая содержит технический идентификатор и идентификатор станции.
У меня есть технический стол, который содержит технический идентификатор и электронную почту.
У меня есть таблица станций, которая содержит идентификатор станции, идентификатор приемника и идентификатор антенны.

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

select @records = sum(stationid) from TechStation where TechID = (select TechID from Tech where Email = 'name@company.com')


Если сумма записи равна = 1
Я пытаюсь запросить свою таблицу станций на основе идентификатора станции, чтобы получить receiverid и antennaid

select 
	ReceiverID,
	AntennaID 
from Station 
where StationID = (select StationID from TechStation where TechID = (select TechID from Tech where Email = 'name@company.com'))


Когда я запускаю это, я просто успешно выполняю команды. Как я могу получить комбинацию идентификаторов приемника и антенны или использовать для этого внутренние соединения? Потому что когда я получаю эти значения я хочу передать их в другую таблицу чтобы убедиться что я получу один тег

Что-то вроде select receiverid, antennaid из processtag, где receiverid и antannadid-это значения, которые я запросил выше.

Любая помощь будет очень признательна.

Спасибо

Что я уже пробовал:

select @records = sum(stationid) from TechStation where TechID = (select TechID from Tech where Email = 'name@company.com')


Если сумма записи равна = 1
Я пытаюсь запросить свою таблицу станций на основе идентификатора станции, чтобы получить receiverid и antennaid

select 
	ReceiverID,
	AntennaID 
from Station 
where StationID = (select StationID from TechStation where TechID = (select TechID from Tech where Email = 'name@company.com'))

1 Ответов

Рейтинг:
0

phil.o

Первое, что приходит мне в голову: почему вы суммируете идентификаторы? Есть ли у них арифметическое отношение? Если вы хотите подсчитать количество записей techstation для конкретной технологии, функция count может быть более подходящей.

Что касается вашего вопроса, то вам, возможно, просто нужно присоединиться к столам:

SELECT
  s.ReceiverID
 ,s.AntennaID
FROM
 Station s
INNER JOIN
 TechStation ts ON ts.StationID = s.StationID
INNER JOIN
 Tech t ON t.TechID = ts.TechID
WHERE
 t.Email = 'name@company.com'