- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как удалить плохие SEO-ссылки и очистить ссылочную массу сайта
Применяем отклонение ссылок
Сервис Rookee
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Столкнулся с проблемой.
Есть 4 таблицы
#users {id,login,pass,type}
#students {id,name,group}
#teachers {id,name,duty}
#groups {id,title}
Суть в том что в users лежат логины и пароли юзеров для входа в систему. Юзеры бывают двух типов - студенты и преподы. Причем у них разный набор полей, но у обоих есть имя. Эти доп. параметры лежат соответственно в таблицах students и teachers (связь по id, он не автоинкрементный а по особым правилам формируется). У студентов есть еще группа, название хранится в таблице groups связь по id группы.
Собственно, нужно извлечь все эти данные разом, со столбцом "ФИО", т.е. чтобы у преподов туда втыкалось из одной таблицы, а у студентов из другой. Плюс еще группа.
Короче у меня получилось это сделать так
Вроде все круто, только вот мне нужен Right Join в обоих случаях, т.е. у некоторых студентов и преподов может не быть логина. Если поменять left на right будет столько же строчек, заполненных NULLами
Т.е. мне нужно извлечь список всех студентов и преподов в одну колонку, плюс прикрепить доп.поля по ситуации, и если есть в users подходящая запись, то еще и оттуда поля.
Подскажите, как такое решить.
Возможно сделать из
#users {id,login,pass,type}
#students {id,name,group}
#teachers {id,name,duty}
одну таблицу
#users {id,login,pass,type,group/duty}
Вроде все круто, только вот мне нужен Right Join в обоих случаях, т.е. у некоторых студентов и преподов может не быть логина. Если поменять left на right будет столько же строчек, заполненных NULLами
Так и должно быть. Он же присоединяет какую-либо из таблиц students или teachers
тут стоит использовать union all
что-то вроде:
SELECT name
from users u
inner join students s on s.id=u.id
union all
SELECT name
from users u
inner join teachers s on t.id=u.id
Возможно сделать из
#users {id,login,pass,type}
#students {id,name,group}
#teachers {id,name,duty}
одну таблицу
#users {id,login,pass,type,group/duty}
Базу нельзя менять.
Так и должно быть. Он же присоединяет какую-либо из таблиц students или teachers
тут стоит использовать union all
что-то вроде:
SELECT name
from users u
inner join students s on s.id=u.id
union all
SELECT name
from users u
inner join teachers s on t.id=u.id
Почти так и сделал.
Использовать надо union all: во-первых, работает быстрее; во-вторых, дубли вам все равно не нужно отбрасывать (если конечно нет студентов приписанных к учителям и состоящих в группе "студенты").