SELECT a.id,a.name,b.name FROM `table1` as a
left join table2 AS B on A.ID=B.ID and b.name='lkjl'
SELECT a.id,a.name,b.name FROM `table1` as a
left join table2 AS B on A.ID=B.ID where b.name='lkjl'
第一个查询出来的是table1的所有数据并左关联table2
第二个是在查询出table1左关联table2之后的数据中筛选左关联table2中符合tb.name='lkjl'的数据
sql 测试
SELECT a.id,a.name,b.name FROM `table1` as a left join table2 AS B on A.ID=B.ID and b.name='lkjl' SELECT a.id,a.name,b.name FROM `table1` as a left join table2 AS B on A.ID=B.ID where b.name='lkjl' SELECT a.id,a.name,b.name FROM `table1` as a INNER join table2 AS B on A.ID=B.ID and b.name='lkjl' SELECT a.id,a.name,b.name FROM `table1` as a INNER join table2 AS B on A.ID=B.ID where b.name='lkjl' SELECT a.id,a.name,b.name FROM `table1` as a INNER join table2 AS B on A.ID=B.ID where a.name='是多少啊' SELECT a.id,a.name,b.name FROM `table1` as a left join table2 AS B on A.ID=B.ID where a.name='阿瑟东' SELECT a.id,a.name,b.name FROM `table1` as a left join table2 AS B on A.ID=B.ID select table1.name,table2.name from table1,table2 where table1.id=table2.id select table1.name,table2.name from table1,table2 ---table1 /* Navicat Premium Data Transfer Source Server : 呵呵 Source Server Type : MySQL Source Server Version : 50724 Source Host : localhost:3306 Source Schema : test Target Server Type : MySQL Target Server Version : 50724 File Encoding : 65001 Date: 13/08/2019 09:08:42 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for table1 -- ---------------------------- DROP TABLE IF EXISTS `table1`; CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `name_t` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `place_order_time` datetime(0) NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of table1 -- ---------------------------- INSERT INTO `table1` VALUES (1, '是多少啊', '西安', NULL); INSERT INTO `table1` VALUES (2, '他', '北京', NULL); INSERT INTO `table1` VALUES (3, '阿瑟东', '撒的', '2019-08-13 09:01:14'); SET FOREIGN_KEY_CHECKS = 1; --table2 /* Navicat Premium Data Transfer Source Server : 呵呵 Source Server Type : MySQL Source Server Version : 50724 Source Host : localhost:3306 Source Schema : test Target Server Type : MySQL Target Server Version : 50724 File Encoding : 65001 Date: 13/08/2019 09:08:51 */ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for table2 -- ---------------------------- DROP TABLE IF EXISTS `table2`; CREATE TABLE `table2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `name_t` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `place_order_time` datetime(0) NOT NULL, `creat_time` varchar(21) CHARACTER SET utf8 COLLATE utf8_general_ci GENERATED ALWAYS AS (concat(`name`,'-',`name_t`)) VIRTUAL NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of table2 -- ---------------------------- INSERT INTO `table2` VALUES (1, 'ljkikl', 'kjljkl', '2019-07-24 18:10:29', DEFAULT); INSERT INTO `table2` VALUES (2, 'lkjl', 'jkl', '2019-07-24 18:10:43', DEFAULT); SET FOREIGN_KEY_CHECKS = 1;
MySQL的INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)