Используйте объединенное имя для фильтрации результатов, но не отображайте имя в таблице - PullRequest
0 голосов
/ 12 декабря 2018

Мне нужно произвести следующее:

Comp No    Year Purchased
=========================

11111       2008
22222       2007
33333       2008
44444       2006

Но мне нужно исключить некоторые результаты, основанные на объединенном имени.И я не могу иметь имя в списке в результате.Это мой код:

SELECT 
Comp_Num,
YEAR (Comp_PurchaseDate) AS 'Year Purchased',
CONCAT(Emp_First, ' ', Emp_Last) as 'Name'
FROM Computer
JOIN Hire using (Comp_Num)
JOIN employee using (Emp_Num)
ORDER BY Comp_Num;

Он производит:

Comp No    Year Purchased   Name
================================

11111       2008            AAA
22222       2007            BBB
33333       2008            CCC
44444       2006            DDD

Объединенное имя используется для фильтрации результатов, например:

WHERE ('Name' <> 'AAA' AND
        Name' <> 'DDD')

Как мнесоздать объединенное имя для фильтрации результатов без отображения столбца?Конкатенация не работает без "как" имя ".

А как использовать объединенное имя для фильтрации?Могу ли я использовать Где?Или есть еще один пункт?

1 Ответ

0 голосов
/ 12 декабря 2018

Вы можете просто определить выражение в предложении WHERE вместо:

SELECT 
Comp_Num,
YEAR (Comp_PurchaseDate) AS `Year Purchased`
FROM Computer
JOIN Hire using (Comp_Num)
JOIN employee using (Emp_Num)
WHERE (CONCAT(Emp_First, ' ', Emp_Last) <> 'AAA' AND
       CONCAT(Emp_First, ' ', Emp_Last) <> 'DDD')
ORDER BY Comp_Num;

Также прочитано: Когда использовать одинарные кавычки, двойные кавычки и обратные тики в MySQL

...