Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 对于SQL中的内部联接和外部联接,我可以给出什么基本示例?_Mysql - Fatal编程技术网

Mysql 对于SQL中的内部联接和外部联接,我可以给出什么基本示例?

Mysql 对于SQL中的内部联接和外部联接,我可以给出什么基本示例?,mysql,Mysql,请帮助我理解并为我的问题提供最好的例子 我无法理解如何创建对象并使用它们 谢谢你给她一些超级简单的东西: 准备数据库: CREATE TABLE `table1` ( `id` int(11) NOT NULL DEFAULT 0, `value` text not null DEFAULT '', PRIMARY KEY (`id`) ) ENGINE=InnoDB; CREATE TABLE `table2` ( `id` int(11) NOT NULL DEFAULT

请帮助我理解并为我的问题提供最好的例子

我无法理解如何创建对象并使用它们


谢谢你

给她一些超级简单的东西:

准备数据库:

CREATE TABLE `table1` (
  `id` int(11) NOT NULL DEFAULT 0,
  `value` text not null DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

CREATE TABLE `table2` (
  `id` int(11) NOT NULL DEFAULT 0,
  `value` text not null DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB;

INSERT INTO table1 VALUES
(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four'), (5, 'five');

INSERT INTO table2 VALUES
(3, 'three'), (4, 'four'), (5, 'five'), (6, 'six'), (7, 'seven');
执行查询:

SELECT t1.*, t2.* FROM table1 t1 JOIN table2 t2 on t1.id = t2.id;
SELECT t1.*, t2.* FROM table1 t1 INNER JOIN table2 t2 on t1.id = t2.id;
+----+-------+----+-------+
| id | value | id | value |
+----+-------+----+-------+
|  3 | three |  3 | three |
|  4 | four  |  4 | four  |
|  5 | five  |  5 | five  |
+----+-------+----+-------+
SELECT t1.*, t2.* FROM table1 t1 LEFT JOIN table2 t2 on t1.id = t2.id;
SELECT t1.*, t2.* FROM table1 t1 LEFT OUTER JOIN table2 t2 on t1.id = t2.id;
+----+-------+------+-------+
| id | value | id   | value |
+----+-------+------+-------+
|  1 | one   | NULL | NULL  |
|  2 | two   | NULL | NULL  |
|  3 | three |    3 | three |
|  4 | four  |    4 | four  |
|  5 | five  |    5 | five  |
+----+-------+------+-------+

假设您有两张桌子:

ID  Name
1   Smith
2   Novak
3   Tarantino
第二张桌子呢

ID  Cash
2   300
3   490
4   500
内部联接
将联接两个表中都匹配的记录,即在结果表中只包括
ID
2和3,因为它们具有匹配项。 结果如下所示:

ID  Name       Cash
2   Novak      300
3   Tarantino  490
ID  Name       Cash
1   Smith      NULL
2   Novak      300
3   Tarantino  490
4   NULL       500
另一方面,
外部联接将匹配所有内容,无论它们是否匹配。如果记录没有匹配项,则对应于某一行的值将为
NULL
,即Smith将在
Cash
列中有
NULL
,而
Cash
列中对应于500的记录将在
Name
列中有
NULL
。 结果如下所示:

ID  Name       Cash
2   Novak      300
3   Tarantino  490
ID  Name       Cash
1   Smith      NULL
2   Novak      300
3   Tarantino  490
4   NULL       500

非常感谢你