我需要编写一个sql查询来通过连接表来显示wing_name,sister_name和nurse_name。
SELECT WING.WING_NAME, SISTER.SISTER_NAME, NURSE.NURSE_NAME
FROM NURSE
JOIN SISTERNURSE ON NURSE.NURSE_ID = SISTERNURSE.NURSE_ID
JOIN SISTER ON SISTER.SISTER_ID = SISTERNURSE.SISTER_ID
JOIN WING ON WING.SISTER_ID = SISTER.SISTER_ID
WHERE WING.WING_NAME = '*';
有人能看出这段代码有什么问题吗?
我需要从Nurse表中提取Nurse_name,该表通过外键Sister_ID链接到另一个名为Sister的表,然后将该表链接到另一个名为Wing的表,该表具有外键Sister_ID。 SisterNurse只是一个包含外键Nurse_id和Sister_id的桥接表。
我在wing_name中有四个值。我会把WING.WING_NAME =' SPARROW',' LORIKEET',' MACAW',' KINGFISHER&#39 ;; ?
表格结构:
姐妹表 - Sister_id(主键),sister_name,sister_surname,sister_contactnumber,sister_salary
Wing Table - wing_id(主键),wing_name,number_of_rooms,sister_id(外键)
护士表 - Nurse_id(主键),护士名称,护士姓名,护士_护士号码,护士_salary
SisterNurse表 - SisterNurse_ID(主键),Sister_id(外键),Nurse_id(外键)
答案 0 :(得分:1)
正如您对下面的另一个答案所评论的那样;我在In Operator中添加了这些名称。
请检查输出:
SELECT WING.WING_NAME, SISTER.SISTER_NAME, NURSE.NURSE_NAME
FROM NURSE
JOIN SISTERNURSE ON NURSE.NURSE_ID = SISTERNURSE.NURSE_ID
JOIN SISTER ON SISTER.SISTER_ID = SISTERNURSE.SISTER_ID
JOIN WING ON WING.SISTER_ID = SISTER.SISTER_ID
WHERE WING.WING_NAME in ('SPARROW', 'LORIKEET', 'MACAW', 'KINGFISHER');
答案 1 :(得分:0)
对wing_name使用正确的值,所有其他sql查询似乎都可以。为wing_name输入正确的值并执行查询。检查它是否仍然给出相同的错误。