Неправильное выполнение запроса объединения - PullRequest
2 голосов
/ 10 апреля 2019

Я пытаюсь выполнить приведенный ниже запрос, но проблема в том, что он показывает «выполнить кучу чепухи», что я хочу, чтобы он показывал тем, кто зависит от женщин, и там имя ассоциированного сотрудника ....... где это моя ошибка + я должен использовать оператор объединения

 SELECT Dep_FName AS 'First name' ,Dep_LName AS 'Last name'  ,Em_FName AS 'Employee"s First name'
 FROM evnt_db.dependent,evnt_db.employee
 where Dep_gender='F' 
Union SELECT Dep_FName AS 'First name'  ,Dep_LName  AS 'Last name'  ,Em_FName AS 'Employee"s First name'
 FROM evnt_db.dependent as d,evnt_db.employee as e
 where d.Emp_Id=e.Em_Id ;

Ответы [ 2 ]

1 голос
/ 10 апреля 2019

Объединение выбирает только отдельные значения, поэтому, возможно, оно перекрывает фильтрацию. Также я не знаю, почему вы должны использовать Union для этого заявления, так как вы выбираете из той же таблицы. Вы можете просто использовать ИЛИ в месте, где находится первая половина запроса.

SELECT Dep_FName AS 'First name ',Dep_LName AS 'Last name '  
 FROM evnt_db.dependent
 where Dep_gender='F' OR Relationship='Wife';

Если вы должны использовать UNION, это должно работать. Я думаю, что ваш запрос был странный с круглыми скобками Также имена столбцов должны быть идентичны в операторе UNION. На 'Last name ' было дополнительное место, а на другом 'Last name'

SELECT Dep_FName AS 'First name ',Dep_LName AS 'Last name '  
 FROM evnt_db.dependent
 where Dep_gender='F'
UNION
SELECT Dep_FName AS 'First name ',Dep_LName  AS 'Last name '  
 FROM evnt_db.dependent
 where Relationship='Wife';

Если вы хотите получить дубликаты записей (не позволяйте объединению фильтровать дубликаты), используйте UNION ALL вместо UNION

0 голосов
/ 10 апреля 2019

UNION по умолчанию удаляет дублирующиеся строки результатов, если вы хотите эти дубликаты, вы можете использовать UNION ALL.

Если вам не нужны эти дубликаты, ваш текущий запрос уже позаботится об этом;хотя в этом случае вам также следует учитывать ответ Кевина.

В любом случае следует ожидать результатов последнего запроса только в том случае, если у вас есть зависимые строки, которые не являются женами 'F'.

...