MySQL 数据库表联查与状态筛选示例
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 语句示例。您可以根据实际需求调整查询条件和筛选条件。
原文地址: https://www.cveoy.top/t/topic/qeFh 著作权归作者所有。请勿转载和采集!