#mysql #union
#mysql #объединение
Вопрос:
Я хочу объединить всех женщин из зависимой таблицы и всех женщин из таблицы employee это мой запрос, но он не выполняется: ((( я должен использовать оператор объединения :
SELECT Em_FName AS 'Employes Name ', Dep_FName as 'Dependant Name '
FROM evnt_db.employee as e,evnt_db.dependent as d
where Dep_gender='F'
Union
SELECT Em_FName AS 'Employes Name ', Dep_FName as 'Dependant Name '
FROM evnt_db.employee as e,evnt_db.dependent as d
where Em_gender='F' ;
Комментарии:
1. » это не выполняется » Что вы имеете в виду под этим? Разве это не возвращает какой-либо результат? Выдает ли это ошибку? Если да, то в чем ошибка?
2. выдает ошибку неизвестного столбца Em_gender в предложении where
3. Это означает, что нет
Em_gender
поля вevnt_db.employee
4. Столбец
Em_gender
принадлежитemployee
илиdependent
таблице?5. кстати, прочитав два запроса, вы можете сделать это с помощью одного, используя
OR
в предложении where…
Ответ №1:
Ошибка возникает из-за пробела между Em_
и gender
в имени таблицы в mysql. Но рассмотрите эти запросы вместо вашего, что имеет мало смысла, если вам приходится использовать ОБЪЕДИНЕНИЕ
SELECT '' AS 'Employes Name ', Dep_FName as 'Dependant Name '
FROM evnt_db.dependent as d
WHERE Dep_gender='F'
UNION
SELECT Em_FName AS 'Employes Name ', '' as 'Dependant Name '
FROM evnt_db.employee as e,evnt_db.dependent as d
WHERE Em_gender='F' ;
Этот запрос выдаст вам столбец со всеми именами зависимых, столбец со всеми именами сотрудников. Каждый столбец будет пустым, если в другом столбце есть значение.
Если вы хотите, чтобы все они были в столбце, только вы можете сделать:
SELECT Dep_FName as 'Dependant Name ', 'Dependant' as Type
FROM evnt_db.dependent as d
WHERE Dep_gender='F'
UNION
SELECT Em_FName AS 'Employes Name ', 'employee' as Type
FROM evnt_db.employee as e,evnt_db.dependent as d
WHERE Em_gender='F' ;
Это даст вам все имена в одном столбце, а в другом столбце тип .
Кстати: я почти уверен, что помогаю вам списывать домашнее задание
Комментарии:
1. все еще выдает ошибку неизвестного столбца в ‘Em_gender’ в where cluase
2. проверьте название столбца в таблице. Насколько я вижу, между
Em_
иgender
есть пробел. Вот почему mysql не находит столбец3. да, я так и думал, что перепроверю это