Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.02.2015, 20:47   #1
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию asp.net LINQ SQL выборка с двох таблиц

Есть две табилцы Friends і Posts, мне нужно найти и вывести посты только друзей.
Структура таблиц примерно такая:
Posts:
id | Text | UserId (владелец поста)
Friend:
id | UserId1 | UserId2 | FriendConfirmed

Пробывал примерно так. Находим своих друзей. Берем этот список и перебираем id друга и ищем в таблице посты с етим id и так целый список через foreach и все запихаем в список по очередности. Этот подход неверен так много запросов к БД, одним запросом как то можно? Мне нужна помощь что б написать такой запрос.
ogamilait вне форума Ответить с цитированием
Старый 09.02.2015, 20:56   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Как это решается через LINQ без понятия, а одним SQL-запросом примерно так
Код:
SELECT P.*
  FROM Friend F, Posts P
  WHERE F.UserId1=я AND F.UserId2=P.UserId
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.02.2015, 21:52   #3
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Как это решается через LINQ без понятия, а одним SQL-запросом примерно так
Код:
SELECT P.*
  FROM Friend F, Posts P
  WHERE F.UserId1=я AND F.UserId2=P.UserId
Спасибо работает, у меня вопрос есть что лучше использывать для запросов LINQ или чистый SQL ?
ogamilait вне форума Ответить с цитированием
Старый 09.02.2015, 21:58   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Может кто и скажет, но, увы, я по поводу LINQ зеро полный
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.02.2015, 22:05   #5
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

смотря какой LINQ, и смотря какие запросы
lomastr_ вне форума Ответить с цитированием
Старый 09.02.2015, 22:08   #6
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Может кто и скажет, но, увы, я по поводу LINQ зеро полный
У меня еще один вопрос назрел, указать связь при выборке.
db.Posts.Include(p => p.User) вот так делаю через linq, а в sql как указать может знаете?
ogamilait вне форума Ответить с цитированием
Старый 09.02.2015, 22:10   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Используй то что удобнее. В шарпее LINQ ИМХО более предпочтителен нежели SQL.
Цитата:
указать связь при выборке.
В SQL есть JOIN.
Код:
From ...
Inner Join Posts on Posts.UserId=Friend.UserId1
К примеру.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.02.2015, 22:28   #8
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Используй то что удобнее. В шарпее LINQ ИМХО более предпочтителен нежели SQL.

В SQL есть JOIN.
Код:
From ...
Inner Join Posts on Posts.UserId=Friend.UserId1
К примеру.
Спасибо, мб вы можыте перевести это на linq ?
Код:
SELECT P.*
  FROM Friend F, Posts P
  WHERE F.UserId1=я AND F.UserId2=P.UserId
ogamilait вне форума Ответить с цитированием
Старый 09.02.2015, 22:36   #9
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

Цитата:
db.Posts.Include(p => p.User)
это оно и есть
lomastr_ вне форума Ответить с цитированием
Старый 09.02.2015, 22:53   #10
ogamilait
Пользователь
 
Регистрация: 09.11.2013
Сообщений: 60
По умолчанию

не так выразился, этот запрос.

Код:
SELECT P.*
  FROM Friend F, Posts P
  WHERE F.UserId1=я AND F.UserId2=P.UserId
ogamilait вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Linq to sql + asp.net vb Silvan90 ASP.NET 6 18.02.2013 21:59
Удаленный SQL-сервер Ado.Net + .Net remoting + Asp .Net gammaray Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 2 22.11.2010 17:36
ASP.NET // C# // Выборка данных из MSSQL Veiron ASP.NET 4 15.03.2009 17:43
Выборка информации из 2 таблиц (SQL) frai БД в Delphi 10 10.11.2007 17:38