也許你想加入表?
SELECT c.company_name, S.first_name, S.last_name, S.position
FROM companies c
INNER JOIN staff
ON c.company_id = staff.company_id
或你想這一切在一列或東西...
SELECT c.company_name, concat(S.first_name, ' ', S.last_name, ' ', S.position) as staff
FROM companies c
INNER JOIN staff
ON c.company_id = staff.company_id
仍不能確定你之後,所以也許在做什麼......
SELECT c.company_name, Group_concat(concat(S.first_name, ' ', S.last_name, '-', S.position Order by Last_name, First_name SEPARATOR ':') as staff
FROM companies c
INNER JOIN staff S
ON c.company_id = staff.company_id
GROUP BY c.Company_name
什麼上面應該做的是爲每一行連接第一個名字空間的姓氏破折號位置,然後合併由a分隔的行。這將爲表格中的每個公司創造1個且僅1條記錄。因此它不會引起任何1-M關係問題。因爲它會將公司/員工視爲1-1關係。如果需要,我們可以做的一代類似下面的子查詢...
SELECT c.company_name, S.StaffList
FROM companies c
LEFT JOIN (SELECT company_ID, Group_concat(concat(S.first_name, ' ', S.last_name, '-', S.position Order by Last_name, First_name SEPARATOR ':') as staffList
FROM staff
GROUP BY Company_ID) S
ON c.company_id = S.company_id
這將導致公司&員工之間的關係,1-1。雖然staffList將會相當複雜...
好吧,因爲加入將無法工作....你能顯示預期的結果嗎? – xQbert
「我想讓所有公司的員工成爲額外的專欄」,所以如果一家公司有10名員工,您需要爲1列中的所有員工列出第一名,最後一名和職位? 'concat'&'Group_Concat'聽起來像你想要的功能 – xQbert
對不起,它不適用於我,工作人員數據包括出生日期,department_id,狀態,照片等,所以我不能只是連接所有字段。 – AlecTMH