我当前的查询:
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的结果,并且辅助必须显示空结果的NULL,以便我可以看到他们排队的位置。
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而不是他们的名字。
我已尝试再次在Secondarysalesid上加入员工并再次使用CONCAT,但它不能正确排列主要版本。我需要查看哪些交易只有主要交易,然后是(主要和次要)
任何建议都会非常感激。
答案 0 :(得分:1)
再次加入员工:
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'
答案 1 :(得分:0)
建议你两次加入“employee”到“gear_search”,就像这样(请原谅旧式语法不使用LEFT JOIN,这是我更熟悉的内容:
SELECT CONCAT(emp1.firstName,'',emp1.lastName), gear.gearCata, CONCAT(emp2.firstName,'',emp2.lastName) 从gear_search作为齿轮, 员工为emp1, 员工为emp2 哪里 gear.CompanyName ='rty' 和 gear.PrimarySalesid = emp1.salesid 和 gear.SecondarySalesid = emp2.salesid
虽然你的帖子说你尝试过这样的事情,但是你不清楚你是否在查询中有“雇员”两次。所以我可能会在这里通过你自己的手表告诉你时间。