提问者:小点点

MySQL中的游标表达式


如何实现与Oracle游标表达式在MySQL数据库(版本从5.6开始)中所做的相同的功能下面是Oracle游标表达式的示例查询

SELECT department_name, CURSOR(SELECT salary, commission_pct 
   FROM employees e
   WHERE e.department_id = d.department_id)
   FROM departments d;

如何用MySQL数据库实现与此相同的功能呢?


共1个答案

匿名用户

我不知道CURSOR()在oracle中做什么,因为我从未接触过oracle,但我不知道它是否会帮助您,但我认为您希望这样加入:

SELECT d.department_name, e.salary, e.commission_pct. 
FROM departments d
INNER JOIN employees e
ON (e.department_id = d.department_id);

我给您这个链接以获取有关关节的更多信息:https://sql.sh/cours/jointures,根据sql.sh:

有几种方法可以将2个表关联在一起。 下面是所使用的不同技术的列表:

  • inner join:当两个表中的条件均为true时返回记录的内部联接。 这是最常见的
    联接之一。
  • 交叉连接:交叉连接,使两个表的笛卡尔积。 换句话说,允许将一个表的每一行与第二个表的每一行连接起来。 注意,结果的数量一般都很高。
  • 左联接(或左外联接):外部联接,用于返回左表(LEFT=LEFT)的所有记录,即使在其他表中没有
    检查该条件。
  • RIGHT JOIN(或RIGHT OUTER JOIN):外部联接,用于返回右侧表(RIGHT=RIGHT)中的所有记录,即使在另一个表中未检查该条件。
  • FULL JOIN(或FULL OUTER JOIN):当两个表中至少有一个表的条件为true时返回结果的外部联接。
  • 自联接:允许将表与其自身联接,就像将表与另一个表联接一样。
  • 自然联接:如果两个SQL表之间至少有一个同名列,则两个表之间的自然联接。
  • UNION JOIN:UNION的JOIN.

如果你有任何问题,我随时可以回答。