выборка Select из не скольких таблиц
выборка Select из не скольких таблиц
Не могу выбрать правильно всех студентов из таблицы Универов с названием МГТУ
Есть таблицы Students
id (идентификационный номер студента),
fio (фио студента),
idu (идентификационный номер Универа),
таблица Universities
idu (идентификационный номер универа),
name (название универа)
Нужно выбрать всех студентов из Универа(Where Universitiies.name=MGTU)
[syntax=sql]Select * FROM Students where idu == MGTU?[/syntax]
благодарю заранее
Есть таблицы Students
id (идентификационный номер студента),
fio (фио студента),
idu (идентификационный номер Универа),
таблица Universities
idu (идентификационный номер универа),
name (название универа)
Нужно выбрать всех студентов из Универа(Where Universitiies.name=MGTU)
[syntax=sql]Select * FROM Students where idu == MGTU?[/syntax]
благодарю заранее
Re: выборка Select из не скольких таблиц
SELECT * FROM Students WHERE idu IN (SELECT idc FROM Universities WHERE name='MGTU');mrtsen писал(а):Не могу выбрать правильно всех студентов из таблицы Универов с названием МГТУ
Есть таблицы Students
id (идентификационный номер студента),
fio (фио студента),
idu (идентификационный номер Универа),
таблица Universities
idc (идентификационный номер универа),
name (название универа)
Нужно выбрать всех студентов из Универа(Where Universitiies.name=MGTU)
[syntax=sql]Select * FROM Students where idu == MGTU?[/syntax]
благодарю заранее
http://www.mysql.ru/docs/man/ANSI_diff_Sub-selects.html
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: выборка Select из не скольких таблиц
select fio from students left outer join univercities on univercities.idc=students.idu
where univercities.name = 'MGTU'
тот запрос, что дали выше - будет работать намного медленнее.
where univercities.name = 'MGTU'
тот запрос, что дали выше - будет работать намного медленнее.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: выборка Select из не скольких таблиц
Foenix писал(а): left outer join

Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: выборка Select из не скольких таблиц
а ты тока знаешь in? 
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: выборка Select из не скольких таблиц
Спасибо за ответ. Не успел исправить, двойку получил))Foenix писал(а):select fio from students left outer join univercities on univercities.idc=students.idu
where univercities.name = 'MGTU'
тот запрос, что дали выше - будет работать намного медленнее.
Так почему запрос выше медленнее работает?
Re: выборка Select из не скольких таблиц
потому, что в запросе с In объединены как бы два запроса, и на каждую строчку из первой выборки (select all) будет производиться еще одна (IN) и сравниваться "в или не в"
правда, для того, чтоб мой запрос работал быстрее - нужно правильно расставить ключи
Кроме того, не знаю для чего ты это делаешь, у тебя неправильные именования полей. Ну это для пятерки.
правда, для того, чтоб мой запрос работал быстрее - нужно правильно расставить ключи
Кроме того, не знаю для чего ты это делаешь, у тебя неправильные именования полей. Ну это для пятерки.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: выборка Select из не скольких таблиц
Наименования и задания были сформулированы преподавателем. Я у него спросил, на счет:Foenix писал(а):потому, что в запросе с In объединены как бы два запроса, и на каждую строчку из первой выборки (select all) будет производиться еще одна (IN) и сравниваться "в или не в"
правда, для того, чтоб мой запрос работал быстрее - нужно правильно расставить ключи
Кроме того, не знаю для чего ты это делаешь, у тебя неправильные именования полей. Ну это для пятерки.
[syntax=sql]SELECT * FROM Students WHERE idu == MGTU?[/syntax]
он сказал, это работает, но для больших базы данных есть более оптимальные решения. JOIN лучше использовать в SQL а в ORACLE, с которым, наш преподаватель работает, есть другое решение подытожил, какое не пояснил.
А как правильно расставить ключи?нужно правильно расставить ключи
Re: выборка Select из не скольких таблиц
оракл не знаю что там и как - не работала, это серьезная такая массивная субд для серьезных целей)),
а термин sql- это сам язык, он sql везде) так что в оракле тоже sql. Только сама база данных устроена везде по-разному и разные и очень огромные различия в них есть. Но есть немного как бы об щих правил "для всех". И язык этот может иметь свои нюансы в разных субд, т.е. они берут за основу общее, а там даже один запрос может быть обработан по-разному в разных субд.
И про ключи, вернее не ключи, а нужно верно проиндексировать таблички. Т.е. допустим в простом запросе с where можно проиндексировать по полю поиска и запрос МОЖЕТ БЫТЬ ускорен. И это очень сложная тема чтоб тут рассказать (да и не умею я рассказывать чтоб было для вашего преподавателя точно) и это нужно смотрнеть в конкретной базе данных.
Индекс - это типа оглавления. Т.е. если искать например студентов по фио -как бы хорош бы иметь оглавление по их фио, правда? но тогда с другой стороны - когда мы добавляем в таблицу строки, то строчка будет добавляться медленнее потому, что нужно еще полезть и добавить в оглавление информацию (особенно если есть куча ключей и составные тоже), т.е. тут важна мера, частота запросов и т.д.
по праймари кей строится всегда индекс по-умолчанию. Зачастую добавляются так же индексирование по ссылочным полям, если настроены foregn key как положено (для этого в sqlite нужно повернуть один выключатель)
Есть какие-то определенные программы для помощи в составлении запросов с рекомендациями по подбору ключей и т.д. Все это громадная тема.
а термин sql- это сам язык, он sql везде) так что в оракле тоже sql. Только сама база данных устроена везде по-разному и разные и очень огромные различия в них есть. Но есть немного как бы об щих правил "для всех". И язык этот может иметь свои нюансы в разных субд, т.е. они берут за основу общее, а там даже один запрос может быть обработан по-разному в разных субд.
И про ключи, вернее не ключи, а нужно верно проиндексировать таблички. Т.е. допустим в простом запросе с where можно проиндексировать по полю поиска и запрос МОЖЕТ БЫТЬ ускорен. И это очень сложная тема чтоб тут рассказать (да и не умею я рассказывать чтоб было для вашего преподавателя точно) и это нужно смотрнеть в конкретной базе данных.
Индекс - это типа оглавления. Т.е. если искать например студентов по фио -как бы хорош бы иметь оглавление по их фио, правда? но тогда с другой стороны - когда мы добавляем в таблицу строки, то строчка будет добавляться медленнее потому, что нужно еще полезть и добавить в оглавление информацию (особенно если есть куча ключей и составные тоже), т.е. тут важна мера, частота запросов и т.д.
по праймари кей строится всегда индекс по-умолчанию. Зачастую добавляются так же индексирование по ссылочным полям, если настроены foregn key как положено (для этого в sqlite нужно повернуть один выключатель)
Есть какие-то определенные программы для помощи в составлении запросов с рекомендациями по подбору ключей и т.д. Все это громадная тема.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: выборка Select из не скольких таблиц
я бы сказал понял) Но как уже сказали, до "понял"-а еще далеко. Скачал уроки по SQL от специалиста. А вы как начинали учить SQL? Хочу посмотреть уроки, делать запросы, познакомиться с основой SQL, на будущее
Re: выборка Select из не скольких таблиц
специалист - норм, смотри
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198