Объединение всех женских полов в двух таблицах

#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. да, я так и думал, что перепроверю это