Подзапросы SQL - PullRequest
       13

Подзапросы SQL

0 голосов
/ 08 сентября 2010

У меня следующий запрос:

SELECT id, subject, date
FROM mail
WHERE date > some_date

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

Сейчас я делаю это:

foreach (id in result)
{
  query = String.Format("SELECT username from USERS where id = {0}", id);
}

Ожидаемый вывод столбца:

id   subject   date   username
--------------------------------

Ответы [ 3 ]

2 голосов
/ 08 сентября 2010
SELECT m.id, u.username, m.subject, m.date 
FROM mail m
inner join USERS u on m.id = u.id 
WHERE m.date > @some_date 

Конечно, если вы хотите это в C # / LINQ:

 var msgs =  from m in db.Mail
     where m.date > some_date
     select new
     {
         m.id,
         m.subject, 
         m.date, 
         m.Users.Username
     };
1 голос
/ 08 сентября 2010

Использование:

SELECT m.id, 
       m.subject,
       m.date,
       u.username
  FROM MAIL m
  JOIN USERS u ON u.id = m.id
              AND u.id = {0}
 WHERE m.date > some_date
0 голосов
/ 08 сентября 2010
SELECT username FROM users WHERE id IN (
  SELECT id FROM mail WHERE date > some_date
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...