【问题标题】:Subquery multiple rows oracle子查询多行oracle
【发布时间】:2015-01-29 13:10:27
【问题描述】:

我有一个包含这些值的表:

╔════╦═══════════════╗
║ ID ║     TYPE      ║
╠════╬═══════════════╣
║  1 ║ FUEL PUMP     ║
║  2 ║ FIRE ALARM    ║
║  3 ║ FIRE PUMP     ║
║  4 ║ SAFETY SHOWER ║
╚════╩═══════════════╝

(query is: SELECT DISTINCT TYPE FROM EQUIPMENT)

还有一个返回以下内容的查询:

╔═════════════╦══════════════╗
║    Room     ║ Equipment ID ║
╠═════════════╬══════════════╣
║ Locker Room ║            1 ║
║ Hallway     ║            1 ║
║ Foyer       ║            2 ║
║ Office 1    ║            3 ║
║ Office 2    ║            2 ║
╚═════════════╩══════════════╝

我试图通过在生成上表的查询的 SELECT 和 WHERE 语句中使用子查询来显示 EQUIPMENT.TYPE 字段。但是,我得到了:ORA-01427: single-row subquery returns more than one row 01427. 00000 - "single-row subquery returns more than one row"。我假设这是因为设备 ID 值被多次返回。

是否可以通过连接来做到这一点?

【问题讨论】:

  • 请显示您的查询和预期的输出。
  • @Gary_W 感谢您的回复。我已经设法对其进行排序。我对这个问题的措辞泄露了它。我需要一个联接而不是子查询!

标签: sql oracle


【解决方案1】:
select room, type
from equipment join rooms 
on rooms.equipment_id = equipment.id

假设另一张桌子叫做房间。

【讨论】:

    猜你喜欢
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-09-26
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多