警告:这是一个相当新秀的软问题,来自刚刚几天刚刚开始修补SQL的人。SQL - JOIN和比较不同表中的两行之间的区别是什么?
所以我试图自己教一些基本的SQL使用SQL小提琴(http://sqlfiddle.com/)。这只是一个基本的SQL表制造商,它允许我测试一些查询。如果您愿意,可以使用它来快速查看我的表格。
我正在使用MySQL 5.5.32。
现在,我的表看起来如下:
CREATE TABLE masters (
name VARCHAR(15),
num INT,
riches VARCHAR(15),
age INT,
PRIMARY KEY (num)
);
CREATE TABLE slaves (
slavename VARCHAR(15),
num INT,
slaveage INT,
FOREIGN KEY (num) REFERENCES masters(num)
);
INSERT INTO masters
VALUES ("Pharao", 0, "Somewhat", 51);
INSERT INTO masters
VALUES ("Cleo", 10, "Loads", 29);
INSERT INTO masters
VALUES ("Dracula", 15, "Nice estate", 847);
INSERT INTO slaves
VALUES ("LoneSlave", 0, 29);
INSERT INTO slaves
VALUES ("SexyMan", 10, 21);
INSERT INTO slaves
VALUES ("SexyWoman", 10, 19);
INSERT INTO slaves
VALUES ("Zombie", 15, 72);
INSERT INTO slaves
VALUES ("Wolfman", 15, 51);
INSERT INTO slaves
VALUES ("Frankenstein", 15, 51);
现在,我刚开始学习JOIN。
这是我的问题;有什么区别:...
SELECT * FROM masters, slaves WHERE masters.num = slaves.num;
SELECT * FROM masters JOIN slaves ON masters.num = slaves.num;
而且据我所知,这些产生完全相同的结果。
有人可以向我解释这些结果之间的区别是什么?
我的意思是,这只是一个偏好的事情,还是有一个优势明显的优势?
(PS:我会用soft-question
标签,但显然这是高背叛,直到我有1500 REP)
可能重复的[INNER JOIN ON VS WHERE子句](http://stackoverflow.com/questions/1018822/inner-join-on-vs-where-clause) – 2014-10-18 11:57:08
可能复制:http://stackoverflow.com/questions/44917/explicit-vs-implicit-sql-joins – Esse 2014-10-18 11:57:18
看看这个 - http://stackoverflow.com/questions/1018822/inner-join-on-vs-在哪里条款 – 2014-10-18 11:57:20