【发布时间】:2020-11-14 17:07:32
【问题描述】:
SELECT
ID, PRIM_EMAIL, SEC_EMAIL, PHONE
FROM
STUDENTS.RECORDS
WHERE
ID IN (SELECT ID FROM STUDENTS.INFO WHERE ROLL_NO = '554')
UNION
SELECT NAME
FROM STUDENTS.INFO
WHERE ROLL_NO = '554';
这里Roll_No 是用户插入的数据,所以现在我已经对其进行了硬编码。基本上在ROLL_NO 的帮助下,我对STUDENTS_INFO 表进行排序,从中我得到ID 并基于此我尝试从STUDENTS.RECORDS 表中获取PRIM_EMAIL、SEC_EMAIL、PHONE,同时匹配两个表的外键。除了当前的结果集,我还想要 prov_name 列。
非常感谢任何帮助。谢谢!
【问题讨论】:
-
一个
UNION的两个SELECTs 必须返回相同数量的列。 -
您可以通过
UNION select NAME, NULL, NULL, ... FROM ...获得相同的号码。 -
Union 采用两个结果集并将它们组合在一起作为一个结果。这就像在 Excel 中复制和粘贴行。如果您想在结果中添加一个新列,您可以加入或使用子选择。
-
更新您的问题添加适当的数据样本和预期结果
标签: sql database oracle join subquery