|
|
|
|
|
для: ВК
(15.07.2004 в 20:44)
| | Может просто написать многотабличный запрос, если таблицы небольшие, много времени они не займут:
-- Для сотрудников, работающих в трёх фирмах
SELECT employee FROM first, second, third
WHERE first.employee = second.employee
AND second.employee = third.employee;
-- Для сотрудников, работающих в двух фирмах
SELECT employee FROM first, second, third
WHERE first.employee = second.employee
OR second.employee = third.employee
OR first.employee = third.employee;
|
| |
|
|
|
|
автор: ВК (15.07.2004 в 20:45) |
|
|
для: Кузнецов М.В.
(15.07.2004 в 19:20)
| | выслал письмо | |
|
|
|
|
автор: ВК (15.07.2004 в 20:44) |
|
|
для: cheops
(15.07.2004 в 18:52)
| | Да все просто в смысле структуры: три таблицы, в каждой ФИО. И задача - выбрать тех, которые (а) работают в двух фирмах и (б) в трех. | |
|
|
|
|
|
|
|
для: ВК
(15.07.2004 в 18:15)
| | Спасибо за хорошие слова в наш адрес. Дизайнер у нас действительно уникум :)
>Кстати,Максим Валерьич, у меня есть подозрение, что мы с тобой уже однажды пересекались :)
Вполне возможно :) | |
|
|
|
|
|
|
|
для: ВК
(15.07.2004 в 18:15)
| | Спасибо на добром слове :)
Насколько мне известно в текущей версии MySQL внешние объединения не поддерживаются. Это очень примитивная база данных - пока нет даже вложенных запросов :( Единственное её достоинство - скрость, бесплатность и простота освоения. Кстати, на сайте MySQL есть русский мануал, в котором можно точно посмотреть что в ней есть - только он не очень удобен в навигации...
PS Если структура базы не секретна :) можно было бы вместе подумать над наиболее оптимальным решением задачи. | |
|
|
|
|
автор: ВК (15.07.2004 в 18:15) |
|
|
для: glsv (Дизайнер)
(14.07.2004 в 00:24)
| | Дорогие коллеги! В первую очередь выражаю вам огромную признательность за ваш труд, - к сожалению, не так много людей, понимающих, что кроме того, чтобы брать и хапать, надо еще отдавать. Хочу также сделать искреннее признание в высоком профессионализме cheops'у и Кузнецову М.В. Кстати, Максим Валерьич, у меня есть подозрение, что мы с тобой уже однажды пересекались :) Должен также сказать, что первый раз вижу Дизайнера, разбирающегося в СУБД, это нонсенс по нынешним меркам :)
Я программист с 20 летним стажем, но ранее никогда не работал под Web и, увы, обошли меня стороной и базы данных (специфика работы: приходилось все делать на файлах). Но - вот пришлось изучать и достаточно в быстром темпе, поэтому не откажите в помощи. Скажу честно - дается не просто. У меня к вам два вопроса, и, насколько, я понимаю, оба имеют отношение к обсуждаемому в этой теме вопросу.
1. У меня есть БД по сотрудникам, которые работают в трех фирмах. Как правило, каждый из сотрудников работает или в двух или в трех фирмах. И мне нужно вывести всех сотрудников, которые работают одновременно в трех фирмах.
2. Работает ли в MySQL внешнее объединение? Т.е. могу ли я написать, к примеру, WHERE employee *= office? | |
|
|
|
|
автор: Duke (15.07.2004 в 02:52) |
|
|
для: glsv (Дизайнер)
(14.07.2004 в 00:24)
| | Большое спасибо, да не работало из - за условия в конце. Запрос теперь правда другой придумывать надо, но хотя бы голову больше не ломаю - отчего не работает :) | |
|
|
|
|
|
|
|
для: Duke
(13.07.2004 в 23:48)
| | А что у Вас условие Where делает?
Допустим, были выбраны все записи из routes и нулевые поля из schedule (если они есть), а условие Where после этого взяло и отрезало нужные Вам записи? Как будто их и не было.
Не там такого противоречия? Попробуйте без условия провести эксперимент. | |
|
|
|
|
автор: Duke (13.07.2004 в 23:48) |
|
|
для: cheops
(13.07.2004 в 23:31)
| | Да, извиняюсь, FROM я пропустил. Вот реальный запрос.
SELECT * FROM routes LEFT outer JOIN schedule ON routes.id_route = schedule.id_route where id_train=".$row['id_train'].
|
| |
|
|
|
|
|
|
|
для: duke
(13.07.2004 в 21:32)
| | Смущает вот что... здесь помоему пропущен оператор FROM между table1 и LEFT... Точно этот SQL-запрос работает, а не вылетает с синтаксической ошибкой? | |
|
|
|
|