从MySQL视图中选择

时间:2019-04-04 18:37:58

标签: mysql sql phpmyadmin

我正在编写一个简单的用户登录Web服务,并从phpmyadmin中创建的视图中选择数据时遇到问题。

SQL

这些是我的表(不是每一列,而是重要的表)。

帐户表

CREATE TABLE generel.account ( 
  id INT NOT NULL auto_increment ,
  username VARCHAR(15) NOT NULL ,
  mail VARCHAR(30) NOT NULL ,
  password VARCHAR(20) NOT NULL ,
  ...
  PRIMARY KEY (user_id),
  UNIQUE username (username),
  UNIQUE `mail` (mail)
);

用户状态表

CREATE TABLE game.userstatus (
  user_id INT NOT NULL ,
  is_logged_in BOOLEAN NOT NULL ,
  ...
  PRIMARY KEY `ip` (`last_known_ip`)
);

带外键

ALTER TABLE userstatus
  ADD CONSTRAINT fk_generel.account.id
  FOREIGN key (user_id)
  REFERENCES generel.account(user_id) 
  ON DELETE CASCADE 
  ON UPDATE CASCADE;

请注意,sql库(通用和游戏)不同。

这是我要使用的视图:

CREATE VIEW game.gameuser_view AS 
SELECT
  acc.id AS user_id ,
  acc.username ,
  acc.password ,
  acc.mail ,
  usrsts.is_logged_in
  ...
FROM
  generel.account AS acc 
  INNER JOIN
    game.userstatus AS usrsts 
    ON acc.id = usrsts.user_id

预期的行为

从视图中选择数据时,结果不应为空,而是取决于where子句。 插入视图时,数据应重定向到两个表,并且还可以从视图中选择。

问题

  • 无法从视图中选择
  • 可以插入视图,但仍然不能选择
  • 数据将被重定向到帐户表,而不是用户状态表

正如我已经提到的,我正在为登录编写Web服务,并且同样的问题仍然存在。 (我没有检查插入内容,因为注册发生在其他地方。)

0 个答案:

没有答案