我试图实现一个连接,其中select语句有多个列,它将引用特定表中的相同名称,例如:
SELECT
sh.shift_number,
sh.workplace_num,
wp.workplace_name,
sh.workplace_num2,
sh.workplace_num3
FROM shifts AS sh
INNER JOIN workplace AS wk
ON wp.workplace_num = wk.workplace_num
我的问题是我能够获得第一个工作场所的名称,我如何在工作场所2或工作场所3获得相同的信息
Shift_number | workplace_Num | workplace_name | workplace_Num2 | workplace_Num3
4 | 2 | Teller | 3 | 4
正如您所见o Wk_placename(Teller)显示wk_placeNum(2)的名称我希望能够显示Wk_placeNum2和Wk_placeNum3的名称,他们都从加入的工作场所表中获取工作场所名称!
我限制上传图片,希望插图描绘的是!!
答案 0 :(得分:2)
您必须多次加入工作区表。请注意,由于您未指定字段 workplace_num2 和 workplace_num3 是否可为空,我假设这些字段是如此使用 LEFT JOIN 。如果这些不可为空,则应使用 INNER JOIN :
SELECT
sh.shift_number,
sh.workplace_num,
wp.workplace_name,
sh.workplace_num2,
wp2.workplace_name as workplace_name2,
sh.workplace_num3
wp3.workplace_name as workplace_name3,
FROM shifts AS sh
INNER JOIN workplace AS wp
ON sh.workplace_num = wp.workplace_num
LEFT JOIN workplace AS wp2
ON sh.workplace_num2 = wp2.workplace_num
LEFT JOIN workplace AS wp3
ON sh.workplace_num3 = wp3.workplace_num
答案 1 :(得分:1)
试试这个:
SELECT
sh.shift_number,
sh.workplace_num,
wk.workplace_name,
wk2.workplace_name,
wk3.workplace_name
FROM shifts AS sh
INNER JOIN workplace AS wk
ON sh.workplace_num = wk.workplace_num
INNER JOIN workplace AS wk2
ON sh.workplace_num2 = wk2.workplace_num
INNER JOIN workplace AS wk3
ON sh.workplace_num3 = wk3.workplace_num