Mysql 使用左连接和并集进行选择
我有一个查询,返回在某个员工轮班时开具的发票Mysql 使用左连接和并集进行选择,mysql,select,left-join,union,unions,Mysql,Select,Left Join,Union,Unions,我有一个查询,返回在某个员工轮班时开具的发票 SELECT i.dateTime,i.amount,i.totalProfit,i.shiftID, i_o.itemID,i_o.quantity, item.name itemName, p.full_name from invoice i LEFT JOIN inv_order i_o on i_o.invID=i.invID LEFT JOIN `item-service` item on item.itemID = i_o.i
SELECT
i.dateTime,i.amount,i.totalProfit,i.shiftID,
i_o.itemID,i_o.quantity,
item.name itemName,
p.full_name
from invoice i
LEFT JOIN
inv_order i_o on i_o.invID=i.invID
LEFT JOIN
`item-service` item on item.itemID = i_o.itemID
LEFT JOIN person p on
p.PID=i.personID
where i.shiftID =97
但是,我需要从employee表中获取employee name,我只有shiftID
SELECT
i.dateTime,i.type,i.amount,i.totalProfit,i.shiftID,i_o.itemID,i_o.quantity,item.name itemName,p.full_name
from invoice i
LEFT JOIN
inv_order i_o on i_o.invID=i.invID
LEFT JOIN
`item-service` item on item.itemID = i_o.itemID
LEFT JOIN person p on
p.PID=i.personID
where i.shiftID =97
UNION
SELECT e.name from employee e
left join shift s on s.empID = e.empID
where s.shiftID =97
mysql将返回此错误
使用的SELECT语句有不同的列数错误消息很清楚地说明了问题:第一个查询返回8列数据,第二个查询只返回1列数据,因此不能
合并它们。似乎您可能只想通过shift
表加入employee
表,例如
SELECT i.dateTime
,i.type
,i.amount
,i.totalProfit
,i.shiftID
,i_o.itemID
,i_o.quantity
,item.name AS itemName
,p.full_name
,e.name
FROM invoice i
LEFT JOIN inv_order i_o ON i_o.invID=i.invID
LEFT JOIN `item-service` item ON item.itemID = i_o.itemID
LEFT JOIN person p ON p.PID=i.personID
LEFT JOIN shift s ON s.shiftID = i.shiftID
LEFT JOIN employee e ON e.empID = s.empID
WHERE i.shiftID = 97