Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
Помогите составить запрос чтоб по фамилии выводились бы связанные двери.

поиск по фамилии Марсов.
запись "Марсов" в таблице person имеет уникальный идентификатор person.personID=3
запись "Х10" таблице door имеет уникальный идентификатор door.doorID=3
связи в таблице person_door по идентификатору 3 (Марсов) есть две связи с PersonID_DoorID.doorID 5 (Х12) и PersonID_DoorID.doorID 7(Х14)

результат нужен в таком виде: 
Марсов  Х12
Марсов Х14




Пробывал так:
SELECT s.name_room, c.shortFIO 
FROM door s 
 JOIN PersonID_DoorID sc ON s.doorID = sc.personID
 JOIN person c ON sc.personID = c.personID
WHERE c.shortFIO = 'Марсов'
 
Мне выдается результат:
ХЦ10    Марсов
ХЦ10    Марсов
 

То есть как я понимаю это просто "декартовый выбор" третья строка в таблицы person соединилась с третьей строкой таблице door. по двум джоинам, вот и две строки в результате.



Структуру прилагаю в диаграмме.
описание:

name_room поле с именем помещения в таблице door
shortFIO поле с фамилией в таблице person
таблица связей PersonID_DoorID





С Уважением Анатолий С.

К сообщению приложен файл. Размер - 13Kb
9 янв 18, 16:32    [21090739]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
xenix
Guest
Anatoliy S.,

автор
JOIN PersonID_DoorID sc ON s.doorID = sc.personID

уверен?
9 янв 18, 16:35    [21090753]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Anatoliy S.,

SELECT s.name_room, c.shortFIO 
FROM door s 
 JOIN PersonID_DoorID sc ON s.doorID = sc.doorID
 JOIN person c ON sc.personID = c.personID
WHERE c.shortFIO = 'Марсов'
9 янв 18, 16:39    [21090775]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Goga-Gola
Guest
Anatoliy S.,

Крузенштерн - человек и дверь !
9 янв 18, 17:38    [21091105]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
автор
WarAnt


Преогромнейшее спасибо за помощь.
10 янв 18, 07:59    [21092043]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
WarAnt
Anatoliy S.,

SELECT s.name_room, c.shortFIO 
FROM door s 
 JOIN PersonID_DoorID sc ON s.doorID = sc.doorID
 JOIN person c ON sc.personID = c.personID
WHERE c.shortFIO = 'Марсов'


Помогите пожалуйста описать запрос словами.
не совсем понимаю что с какой таблицей из 3х.
точки это "переменная"
17 янв 18, 15:21    [21114182]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2727
то двери, то точки...
какие точки??
17 янв 18, 15:29    [21114208]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Anatoliy S.,

автор
точки это "переменная"

Незнание — сила ну и т.д.
17 янв 18, 15:32    [21114215]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
xenix
Guest
Anatoliy S.,
я бы не сказал, что "точки это "переменная" "
Обращение к столбцам таблицы идет виде [имя таблицы].[имя столбца]
17 янв 18, 16:13    [21114340]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
xenix,
Tactical Nuclear Penguin,
TaPaK,

офф топик.
17 янв 18, 21:04    [21114939]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
SELECT s.name_room, c.shortFIO 
FROM door s 
 JOIN PersonID_DoorID sc ON s.doorID = sc.doorID
 JOIN person c ON sc.personID = c.personID
WHERE c.shortFIO = 'Марсов'


Помогите кто действительно может прочесть запрос и логически понимает написанное уважаемым
WarAnt


Еще не понятно вот:
s.name_room, c.shortFIO обозначение "s" и "c" перед полями это типа псевдонимов? для того чтоб дальше писать короче а не полностью названия?
18 янв 18, 08:42    [21115400]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Кусочек
Guest
Anatoliy S.
SELECT s.name_room, c.shortFIO 
FROM door s 
 JOIN PersonID_DoorID sc ON s.doorID = sc.doorID
 JOIN person c ON sc.personID = c.personID
WHERE c.shortFIO = 'Марсов'


Помогите кто действительно может прочесть запрос и логически понимает написанное уважаемым
WarAnt


Еще не понятно вот:
s.name_room, c.shortFIO обозначение "s" и "c" перед полями это типа псевдонимов? для того чтоб дальше писать короче а не полностью названия?


Не типа, а псевдоним.

Общие рекомендации всегда использовать псевдонимы, они не только позволяют сократить текст запроса и сделать его более читаемым, но и позволяют в одном запросе многократно обращаться к одному и тому же объекту (таблице, представлению и т.д.).

Это далеко не полный ответ на Ваш вопрос зачем.
18 янв 18, 08:48    [21115408]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Добрый Э - Эх
Guest
Anatoliy S.
Помогите кто действительно может прочесть запрос и логически понимает написанное уважаемым
это такая форма глума? ты прикалываешься, или реально не понимаешь, что делает запрос?
18 янв 18, 09:09    [21115456]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
не получается сделать запрос по аналогии:

select ip_adress.ip_adres, skd_devices.skd_device
from ip_adress
JOIN ip_skd ON ip_skd.ip_adressID = ip_adress.ip_adressID
JOIN skd_devices ON [skd_deviceID] = ip_skd.skd_deviceID
WHERE ip_adres = '1.0.0.3'

найти устройство "skd_device" из таблицы "skd_devices" по IP адресу из таблицы ip_adress. Связующая таблица "ip_skd"

Картинка с другого сайта.
18 янв 18, 09:10    [21115463]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
Добрый Э - Эх,

понимаю в общем (построчно понимаю думаю, а вот полностью думаю нет). но видать не настолько чтоб на основе создать другой
18 янв 18, 09:12    [21115468]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
xenix
Guest
Anatoliy S.,
select ip_adress.ip_adres, skd_devices.skd_device
from ip_adress
JOIN ip_skd ON ip_skd.ip_adressID = ip_adress.ip_adressID
JOIN skd_devices ON [skd_deviceID] = ip_skd.skd_deviceID
WHERE ip_adres = '1.0.0.3'

SELECT ADR.ip_adres,SKD.skd_device
FROM ip_adress ADR
JOIN ip_skd SKD ON ADR.ip_adressID=SKD.ip_adressID
JOIN skd_devices DEV ON DEV.skd_deviceID=SKD.skd_deviceID
WHERE ADR. ip_adres = '1.0.0.3'
18 янв 18, 10:08    [21115638]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
xenix,

SELECT ADR.ip_adres,SKD.skd_device
FROM ip_adress ADR
JOIN ip_skd SKD ON ADR.ip_adressID=SKD.ip_adressID
JOIN skd_devices DEV ON DEV.skd_deviceID=SKD.skd_deviceID
WHERE ADR. ip_adres = '1.0.0.3'

автор
Сообщение 207, уровень 16, состояние 1, строка 1
Недопустимое имя столбца "skd_device".

не удается выполнить привязку составного идентификатора DEV.skd_deviceID
18 янв 18, 11:08    [21115846]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Anatoliy S.,

Молодой человек, шли бы вы отсюда книжки почитали.
Возвращайтесь, когда реальные вопросы возникнут, а не то, что можно прочитать на первых ста страницах любой книжки "SQL для чайников".
18 янв 18, 11:16    [21115882]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
Руслан Дамирович,

вы конечно наверно прочитали больше ста листов. И допускаю что знаете ответ или решили б задачу сами похожую.
Не тратьте свое время на пустые ответы. Нет желания помочь, проходите молча.
18 янв 18, 12:30    [21116106]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
автор
xenix,


SELECT ADR.ip_adres,DEV.skd_device
FROM ip_adress ADR
JOIN ip_skd SKD ON ADR.ip_adressID=SKD.ip_adressID
JOIN skd_devices DEV ON DEV.skd_deviceID=SKD.skd_deviceID
WHERE ADR. ip_adres = '1.0.0.3'


Огромное спасибо.
Поправил псевдоним SKD на DEV
заработал.
18 янв 18, 13:21    [21116338]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3462
Anatoliy S.
WarAnt
Anatoliy S.,

SELECT s.name_room, c.shortFIO 
FROM door s 
 JOIN PersonID_DoorID sc ON s.doorID = sc.doorID
 JOIN person c ON sc.personID = c.personID
WHERE c.shortFIO = 'Марсов'


Помогите пожалуйста описать запрос словами.
не совсем понимаю что с какой таблицей из 3х.
точки это "переменная"


1. напишите мне запрос
2. опишит словами, что вы там понаписывали
18 янв 18, 13:37    [21116418]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Anatoliy S.
Member

Откуда: Долгопа. МО
Сообщений: 64
Ролг Хупин,

а почему бы и не описать словами.
Не в каждом учебнике или книге найдешь хорошим стилем описание по JOIN с тремя таблицами. В основном пример с двумя таблицами.

IMHO.
Специалисту не должно быть проблемно написать и описать что написал.

Если нет желания то можно пройти мимо без комментариев.
Посылать читать книги спросившего или просить уходить из форума могут обозленные без совестные людишки.
У каждого свои проблемы и дела.
Форум и создан чтоб спросить и получить ответ. Обучение и чтение в другом месте.

Закрываем демагогию, не флудим.
18 янв 18, 14:31    [21116692]     Ответить | Цитировать Сообщить модератору
 Re: помогите составить запрос к таблицам....  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36695
Модератор: Anatoliy S.,

Уважаемый Anatoliy S. Еще одно выступление в подобном стиле, и я закрою вашу тему, а вас отправлю отдыхать на недельку другую в бан.

Уважаемые отвечающие,

В демагогию лучше не вступайте. Заодно узнаем, кто захочет автору помогать после его поучений.
18 янв 18, 15:32    [21116990]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить