|
|
|
join в запросе к типизированному DataSet
|
|||
|---|---|---|---|
|
#18+
Добрый день. Всех с наступающими праздниками! Подскажите, возможно ли использовать оператор JOIN в запросе на фильтрацию записей в некоторой таблице некоторого датасета? Ситуация: Имеется типизированный (хотя это не важно) DataSet с несколькими таблицами. Среди прочих есть таблицы Books и Authors. Books имеет поля isbn, title, publiser, authorId. Таблица Authors имеет поля id, fullName. Таким образом, эти две таблицы и представляют законченную книгу с информацией о номере книги, названии, издателе и имени автора. Необходимо сформировать запрос на получение всех книг, удовлетворяющих некоторому критерию поиска. Если бы вся информация о книге содержалась бы в одной таблице, то просто использовал строку фильтра в методе Books.Select(): Код: plaintext 1. Поэтому, получив поля из таблицы Book, я в цикле пробегаю по searchedRow и вытягиваю внешние ключи для выполнения дополнительного запроса к таблице Author для извлечения поля fullName: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Получается, что вручную ищу по всем родительским таблицам недостающую информацию для книг. От сюда вопрос - возможно ли в строке фильтира использовать оператор JOIN для единовременного формирования полной информации о книге? Простите за столь долгое пояснение ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.04.2010, 19:26 |
|
||
|
join в запросе к типизированному DataSet
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. это SQL-запрос на выбор всех строк из таблицы Books с подтягиванием таблиц Items и Authors. Напомню, что информация о книге содержится по частям в каждой из трех таблиц. Существует типизированній датасет для данной БД. Методом Select() и строкой фильтрации я вытягиваю данные из каждой таблицы в отдельности. То есть указывать фильтруемые поля в селекте могу через оператор And. Но как написать в одном запросе выборку сразу из всех дататейблов? То есть, возможно ли использовать оператор Join? И если да, то как? Облазил инет, а похожего не встречал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2010, 15:04 |
|
||
|
join в запросе к типизированному DataSet
|
|||
|---|---|---|---|
|
#18+
если охота тянуть все данные на клиента а потом писать запросы к датасету - используйте linq, но лучше (имхо) сформировать нужный набор скулем. а саму задачу я не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2010, 17:01 |
|
||
|
join в запросе к типизированному DataSet
|
|||
|---|---|---|---|
|
#18+
Понятно, что весь тяжеловес должен на скул ложиться. Но задача не типичная. Мы очень редко лезем на скл-сервер. Получили на клиент (имеется в виду DAL, но это не важно) датасет и все, про скул забываем. И уже на клиенте выполняется вся работа с данными: поиск, фильтрация, перемещение ... Вопрос как используя метод Select() для ДатаТейбла сразу получать список ПОЛНОСТЬЮ сформированных записей книг. Ведь запись о книге размещена в 3-х таблицах, а не одной. А достать хочется всю книгу(книги) одним запросом к дататейблу в Select, а не искать три раза в каждой таблице. В скуле используется для этого оператор Join, а возможно ли его использовать в методе Select? Ну может не Join, а что-то другое, но что и как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.04.2010, 17:38 |
|
||
|
|

start [/forum/topic.php?fid=17&tid=1351356]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 493ms |

| 0 / 0 |
