С Новым годом! Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 151

Как написать запрос на таблицы с внешним ключем

26.07.2018, 20:04. Показов 964. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!Пишу программу с базой данных, которая состоит из нескольких таблиц с внешним ключем. Без ключа - запросы получается писать, а вот с ключем написать- проблема.Помогите пожалуйста, уже второй день гуглю, а току нет. Если можно с примером. Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.07.2018, 20:04
Ответы с готовыми решениями:

Запросы MySQL. Таблицы соединенные внешним ключем
Здравствуйте форумчане. Помогите пожалуйста с запросом. Имеются 5 таблиц: Фамилия читателя, Имя читателя, Отчество читателя, Читатель(где...

Удаление строк с внешним ключем
Создаю 2 таблицы: CREATE TABLE A( ID INTEGER PRIMARY KEY, Number INTEGER NULL ) CREATE TABLE B( ID INTEGER PRIMARY KEY, ...

Выборка записей с пустым внешним ключем
Доброго времени суток! Имеется следующий запрос: SELECT...

7
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
26.07.2018, 20:59
Цитата Сообщение от Rudy_SRF Посмотреть сообщение
уже второй день гуглю
Про логический порядок выполнения запроса можно почитать вот здесь.
FROM
ON
JOIN
WHERE
GROUP BY
WITH CUBE or WITH ROLLUP
HAVING
SELECT
DISTINCT
ORDER BY
TOP
Цитата Сообщение от Rudy_SRF Посмотреть сообщение
а вот с ключем написать- проблема
Про join-ы можно почитать вот здесь.
0
0 / 0 / 0
Регистрация: 17.09.2016
Сообщений: 151
26.07.2018, 21:23  [ТС]
Вот заполняю таблицу кодом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 SqlCommand command23 = new SqlCommand("SELECT * FROM [Pribors],[Model],[NamePribor],[Param],[Poverka]", connection);  //где [Pribors],[Model],[NamePribor],[Param],[Poverka] - название таблиц в моей базе данных;
int i = 0;
 while (read.Read())
            {
                dataGridView.Rows.Add();
                dataGridView.Rows[i].Cells[0].Value = number;
                dataGridView.Rows[i].Cells[1].Value = read["Name"];
                dataGridView.Rows[i].Cells[2].Value = read["Model"];
                dataGridView.Rows[i].Cells[3].Value = read["SerialNumber"];
                dataGridView.Rows[i].Cells[4].Value = read["Param"];
                dataGridView.Rows[i].Cells[5].Value = read["Poverka"];
                dataGridView.Rows[i].Cells[6].Value = read["Prim"];
                dataGridView.Rows[i].Cells[8].Value = read["id"];
           }
В результате я получаю заполненную таблицу на 384 строк, но проблема в том, что в основную таблицу(Pribors) я ввел только 2 строки. Где я ошибся?
Миниатюры
Как написать запрос на таблицы с внешним ключем  
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
26.07.2018, 21:47
Цитата Сообщение от Rudy_SRF Посмотреть сообщение
название таблиц в моей базе данных;
WTF, и где здесь используется join?
Такой способ соединения использовался еще в стандарте SQL-89 (select * from t1, t2, ... where ...), идите учите мат.часть. Ссылки даны выше (на примере sql server).
0
Эксперт .NET
 Аватар для Usaga
14108 / 9325 / 1349
Регистрация: 21.01.2016
Сообщений: 35,022
27.07.2018, 07:13
Rudy_SRF, такой запрос:

SELECT * FROM [Pribors],[Model],[NamePribor],[Param],[Poverka]

Без условия соединения таблиц, даёт декартово множество.
0
 Аватар для Wolflind
127 / 107 / 31
Регистрация: 17.03.2016
Сообщений: 445
Записей в блоге: 1
27.07.2018, 07:17
Цитата Сообщение от Rudy_SRF Посмотреть сообщение
те я получаю заполненную таблицу на 384 строк,
Цитата Сообщение от Rudy_SRF Посмотреть сообщение
я ввел только 2 строки.
даже если вы так делаете нужно хотя бы было сопоставления строк сделать на примере where Pribors.id == Model.PriborsID, а вообще это через join делается
еще про join можно посмотреть тут
https://professorweb.ru/my/sql... 2/2_12.php
https://metanit.com/sql/sqlserver/7.3.php

Добавлено через 2 минуты

Не по теме:

SELECT * FROM это не лучшая идея выбирать все столбцы проверенно на опыте лучше укажите только нужные работать будет быстрей



Добавлено через 1 минуту
[Pribors],[Model],[NamePribor],[Param],[Poverka] какая структура этих таблиц?
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
27.07.2018, 08:54
Цитата Сообщение от IamRain Посмотреть сообщение
логический порядок выполнения
я бы не был столь категоричен - скорее оптимизатору передается данный порядок - а он может его и изменить по своему усмотрению
The actual physical execution of the statement is determined by the query processor and the order may vary from this list.
0
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,228
27.07.2018, 11:22
Цитата Сообщение от hoolygan Посмотреть сообщение
я бы не был столь категоричен
hoolygan, речи и не было о том, что фактический порядок точно такой же.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.07.2018, 11:22
Помогаю со студенческими работами здесь

Создать запрос для выборки данных из таблицы по внешним ключам
Здравствуйте! Помогите написать Sql-запрос для выборки данных. У меня есть три таблицы: Amount_of_substance_stac, Substance_of_stac и...

Как написать правильный запрос для большой таблицы
есть 2 таблицы: 1) itemid, name 2) statusid, itemid, date, somevalue нужно выбрать из второй таблицы последние значения...

Как написать запрос update на выборку данных из другой таблицы
Доброго времени суток, есть две бд , нужно написать запрос на обновление данных при вызове хранимой процедуры. Мой вариант запроса: ...

как написать верно sql запрос для таблицы с использованием DateTimeTicker
Добрый день!!!! помогите пожалуйста советом. у меня бд написана на sql server. мне нужно, чтобы в таблице отображались данные, дата...

Запрос к таблице с двойным ключем
есть таблица : id1, id2, qty id1, id2 - двойной ключ. id1 - номер партии,id2 - артикул товара. необходимо сделать запрос который...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru