数据库中有3张表:
- 帐户(存储用户信息)
- 公司(存储公司信息)
- 员工(存储帐户 ID 和公司 ID 以链接帐户和公司)
有一个名为Employee的同名 Java 对象,它存储在用户的会话中。目标是通过employee_id了解它属于什么类型的帐户和公司。
创建了一个带有两个参数的存储过程:company_id 和 account_id,以便在一个查询中从两个数据库表中获取信息:
// хранимая процедура, назовем её get_information
create
definer = root@localhost procedure get_information(IN companyId bigint unsigned, IN accountID bigint unsigned)
BEGIN
SELECT company_name, account_first_name, account_last_name, account_login
FROM accounts
INNER JOIN companies ON company_id = companyId AND account_id = accountId;
end;
更新 1:
CREATE TABLE employees (
employee_id BIGINT UNSIGNED NOT NULL UNIQUE AUTO_INCREMENT PRIMARY KEY,
account_id BIGINT UNSIGNED NOT NULL,
company_id BIGINT UNSIGNED NOT NULL,
FOREIGN KEY (account_id) REFERENCES accounts(account_id),
FOREIGN KEY (company_id) REFERENCES companies(company_id)
);
问题 1:
JOIN 组织是否正确?如果不是,它是如何正确的?
问题2:
或者创建两个SELECT并将它们与UNION连接是否正确?
因为 没有人提供,解决方案之一: