的专栏中,我不能完全得到我周围的SQL查询的头,因为它不是我的专长。我试图选择雇员表中id
的行的名称出现在另一个表accounts
的列salesPersonId
中。也就是说,在帐户表中表示的任何员工姓名。选择行标识的出现在另一个表
ACCOUNT
+----+---------------+
| id | salesPersonID |
+----+---------------+
| 0 | 1020 |
+----+---------------+
| 1 | 1020 |
+----+---------------+
| 2 | 1009 |
+----+---------------+
EMPLOYEE
+------+---------------+
| id | firstName |
+------+---------------+
| 1009 | BILL | <-select his name
+------+---------------+
| 1020 | KATE | <-select her name
+------+---------------+
| 1025 | NEIL | <-not this guy
+------+---------------+
由于Neil在account.salesPersonID中没有任何存在,我想选择除他以外的其他两个人。尽管如此,我还没有做出太多的努力,并寻求一些意见。
SELECT * FROM employee e
LEFT JOIN account a
ON a.salesPersonID = e.id
WHERE (SELECT COUNT(salesPersonID) FROM account) > 0
不起作用。我想知道如何选择salesPersonID
中的这些员工姓名。谢谢。
哇,太棒了。非常感谢!如果我有不止一个凯特,我仍然不太了解如何组队。 – 1252748 2013-02-26 20:34:48
如果您有多个凯特,并且您只想为每个唯一名称显示一行,那么'Group By e.firstName '。如果您想为每位唯一员工显示一行,即使员工拥有相同的姓名,也可以使用“Group By e.Id”。 – 2013-02-26 20:36:08
'SELECT不同e.firstName FROM员工e JOIN帐户a ON a.salesPersonID1 = e.id Group By e.Id'给我错误:'错误:列'employee.FirstName'在选择列表中无效 因为它不是在聚合函数 或GROUP BY clause.'包含:/ – 1252748 2013-02-26 20:50:21