写一个SQL查询创建用户和更新用户分别是谁,数据表和用户信息表之间以用户ID关联
时间: 2023-07-05 12:23:35 浏览: 57
好的,针对您的问题,我可以给出如下的SQL查询语句:
```
-- 查询创建用户的相关信息
SELECT u1.username AS create_username, u2.*
FROM user_info AS u1
JOIN user_info AS u2 ON u1.create_user_id = u2.user_id;
-- 查询更新用户的相关信息
SELECT u1.username AS update_username, u2.*
FROM user_info AS u1
JOIN user_info AS u2 ON u1.update_user_id = u2.user_id;
```
这两条查询语句都是基于一个名为 `user_info` 的数据表,该表中包含了用户的基本信息,同时也记录了创建用户和更新用户的相关信息。通过对该表进行自连接操作,我们可以通过用户ID关联出创建用户和更新用户的详细信息。在上面的查询语句中,通过使用 `JOIN` 关键字将同一张表中的两个实例进行关联,并指定关联条件为创建用户ID和更新用户ID与用户ID相等,然后通过 `SELECT` 语句选择需要的列即可。
相关问题
springboot项目设计一个用户信息表和用户账号密码表,并将创建语句和两表关联展示出来
好的,根据您的要求,我可以为您提供一个简单的 Spring Boot 项目中用户信息表和用户账号密码表的设计,并展示创建语句和两表关联的语句。
用户信息表设计:
```sql
CREATE TABLE `user_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) NOT NULL,
`email` varchar(255) NOT NULL,
`phone` varchar(20) DEFAULT NULL,
`age` int(3) DEFAULT NULL,
`gender` varchar(10) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `username_UNIQUE` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
```
用户账号密码表设计:
```sql
CREATE TABLE `user_login` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`username` varchar(255) NOT NULL,
`password` varchar(255) NOT NULL,
`created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `username_UNIQUE` (`username`),
KEY `user_id_idx` (`user_id`),
CONSTRAINT `user_id` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
```
以上是基本的用户信息表和用户账号密码表的设计和创建语句,其中用户账号密码表中的 `user_id` 为外键,关联到用户信息表的 `id` 字段上。在用户信息表中,我们使用了 `id` 字段作为主键,在用户账号密码表中,我们使用了 `user_id` 字段作为外键,并设置了级联删除和更新。
希望对您有所帮助。
连表查询用户表所有信息,和文章标题,通过用户表关联文章id
好的,可以通过以下 SQL 语句来实现:
```
SELECT users.*, articles.title
FROM users
INNER JOIN articles ON users.id = articles.user_id;
```
其中,`users` 表为用户表,包含用户的所有信息,`articles` 表为文章表,包含文章的所有信息,包括文章所属用户的 `user_id` 字段。通过 `INNER JOIN` 关联两个表,以 `users.id` 和 `articles.user_id` 相等为条件,查询用户表和文章标题。