Предположим, у меня есть таблица сотрудников в одной MYSQL таблице
| CompanyId, EmployeeId, Employee Name |
А в другой таблице у меня есть сотрудники и спорт
| CompanyId, Employee Id, Sport |
Так что теперь я хочу найти имена сотрудников всех людей в компании, которые не занимаются каким-либо спортом (скажем, футболом)
Предположим, я создал представление для упрощения запросов:
Вид слева присоединяйтесь, где companyId и employeeId совпадают, так что мое представление выглядит следующим образом: `` `
| CompanyId, EmployeeId, Employee Name, Sport |
, где строки дублируются для каждого вида спорта, например
01 | 017 | Dylan | Football
01 | 017 | Dylan | Cricket
01 | 017 | Dylan | Table Tennis
01 | 007 | Tom | Hockey
01 | 007 | Tom | Table Tennis
01 | 011 | Mary | null
например, выведите меня всех игроков из Компания 01, которая не играет в хоккей, должна вернуть Дилана и Мэри
Я пробовал SELECT DISTINCT для представления, но это убивает производительность даже для небольших наборов данных sh (порядок в 1000 строк занимает несколько секунд) , Предположим, что индекс в столбце id в левой таблице используется в объединении (CompanyId, EmployeeId).