我当前的查询:

SELECT CONCAT(emp.firstName, ' ', emp.lastName), gear.gearCata
FROM gear_search as gear
LEFT OUTER JOIN employee as emp ON gear.PrimarySalesid = emp.salesid
WHERE gear.CompanyName = 'rty';

我想要的结果是列出一级和二级销售人员的名字和姓氏,而不是他们的ID,二级销售人员必须显示空的结果,这样我才能看到他们在哪里排队。
So like this
PrimarySales Name | GearCatagory | Secondary Name
Bill Jones           Climbing         NULL
Terry Anderson       Running          Bill Jones

... and so on

基本上,gear_search表没有销售人员的名字,只有他们的主和次销售ID。我必须使用employee表来获取他们的实际姓名。
我知道我可以做到:
SELECT CONCAT(emp.firstName, ' ', emp.lastName), gear.gearCata, gear.SecondarySalesid
FROM gear_search as gear
LEFT OUTER JOIN employee as emp ON gear.PrimarySalesid = emp.salesid
WHERE gear.CompanyName = 'rty';

但这只会显示他们的二级销售人员身份,而不是他们的名字。
我已尝试在Secondarysalesid上再次加入employee并再次使用CONCAT,但它无法正确地与primary对齐。我需要看看哪些交易只有一级,然后(一级和二级)
任何建议都将不胜感激。

最佳答案

再次加入员工:

SELECT DISTINCT
  CONCAT(emp.firstName, ' ', emp.lastName) PrimaryName,
  gear.gearCata,
  CONCAT(emp2.firstName, ' ', emp2.lastName) SecondaryName
FROM gear_search as gear
LEFT JOIN employee emp ON gear.PrimarySalesid = emp.salesid
LEFT JOIN employee emp2 ON gear.SecondarySalesid = emp2.salesid
WHERE gear.CompanyName = 'rty'

关于mysql - 从单独的表中获取两列查询的名称而不是ID,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21645777/

10-11 05:51