MySQL 数据库表联查与状态筛选示例

1. 视图定义

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `appointment_view` AS
select `a`.`id` AS `id`,`a`.`user_id` AS `user_id`,`a`.`vaccinum_id` AS `vaccinum_id`,`a`.`doctor_id` AS `doctor_id`,`a`.`address` AS `address`,`a`.`app_date` AS `app_date`,`a`.`injected_time` AS `injected_time`,`a`.`status` AS `status`,`a`.`create_time` AS `create_time`,`u`.`name` AS `user_name`,`v`.`name` AS `vaccinum_name`,`d`.`name` AS `doctor_name`
from (((`appointment` `a` join `user` `u` on((`u`.`id` = `a`.`user_id`))) join `vaccinum` `v` on((`v`.`id` = `a`.`vaccinum_id`))) join `doctor` `d` on((`d`.`id` = `a`.`doctor_id`))) ;

2. 表定义

CREATE TABLE `department` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '部门编号',
  `name` varchar(255) NOT NULL COMMENT '部门名称',
  `remark` varchar(555) DEFAULT NULL COMMENT '描述',
  `status` varchar(255) NOT NULL DEFAULT '1' COMMENT '0-禁止1-正常(可用情况)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='科室';

3. 联查与状态筛选

以下 SQL 语句将查询出 department 表中状态为 0 的科室信息:

SELECT * 
FROM department
WHERE status = '0';

说明:

  • 该 SQL 语句首先从 department 表中选择所有列(SELECT *)。
  • 然后使用 WHERE 子句筛选出 status 列值为 '0' 的数据。

示例:

假设 department 表中有以下数据:

| id | name | remark | status | |---|---|---|---| | 1 | 内科 | | 1 | | 2 | 外科 | | 0 | | 3 | 儿科 | | 1 |

执行上述 SQL 语句后,将返回以下结果:

| id | name | remark | status | |---|---|---|---| | 2 | 外科 | | 0 |

总结:

本示例展示了如何使用 MySQL 进行表联查和状态筛选,并提供了相应的 SQL 语句示例。您可以根据实际需求调整查询条件和筛选条件。

MySQL 数据库表联查与状态筛选示例

原文地址: https://www.cveoy.top/t/topic/qeFh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录