0
我在数据库中有20个表。MySQL从多个表中获取结果
我所试图做的就是谁拥有得分所有学生的名单高于70
我的查询:
SELECT mysql.*, mssql.*, orecle.* FROM mysql, mssql, orecle;
+----------+------------+------------+------------+----------+------------+------------+------------+----------+-------------+-------------+-------------+
| student | mysqltest1 | mysqltest2 | mysqltest3 | student | mssqltest1 | mssqltest2 | mssqltest3 | student | orecletest1 | orecletest2 | orecletest3 |
+----------+------------+------------+------------+----------+------------+------------+------------+----------+-------------+-------------+-------------+
| student1 | 60 | 70 | 80 | student1 | 80 | 60 | 70 | student1 | 80 | 60 | 50 |
| student2 | 50 | 80 | 90 | student1 | 80 | 60 | 70 | student1 | 80 | 60 | 50 |
| student1 | 60 | 70 | 80 | student2 | 90 | 70 | 50 | student1 | 80 | 60 | 50 |
| student2 | 50 | 80 | 90 | student2 | 90 | 70 | 50 | student1 | 80 | 60 | 50 |
| student1 | 60 | 70 | 80 | student1 | 80 | 60 | 70 | student2 | 90 | 70 | 80 |
| student2 | 50 | 80 | 90 | student1 | 80 | 60 | 70 | student2 | 90 | 70 | 80 |
| student1 | 60 | 70 | 80 | student2 | 90 | 70 | 50 | student2 | 90 | 70 | 80 |
| student2 | 50 | 80 | 90 | student2 | 90 | 70 | 50 | student2 | 90 | 70 | 80 |
+----------+------------+------------+------------+----------+------------+------------+------------+----------+-------------+-------------+-------------+
8 rows in set (0.00 sec)
为什么它显示8行,而不是2?
我希望发生的是当查询运行,只输出有一个值高于70
我厌倦了一对夫妇查询但是似乎没有任何工作,他们都给了我错误的细胞。
SELECT mysql.*, mssql.*, orecle.* FROM mysql, mssql, orecle where ALL > 70;
SELECT mysql.*, mssql.*, orecle.* FROM mysql, mssql, orecle where ALL > '70';
SELECT mysql.*, mssql.*, orecle.* FROM mysql, mssql, orecle where mysql.* OR mssql.* OR orecle.* > 70;
SELECT mysql.*, mssql.*, orecle.* FROM mysql, mssql, orecle where mysql.* OR mssql.* OR orecle.* > '70';
该查询会给我一个行,我认为是更好的
SELECT mysql.*, mssql.*, orecle.* FROM mysql, mssql, orecle where mysql.student='student1' AND mssql.student='student1' AND orecle.student='student1';
+----------+------------+------------+------------+----------+------------+------------+------------+----------+-------------+-------------+-------------+
| student | mysqltest1 | mysqltest2 | mysqltest3 | student | mssqltest1 | mssqltest2 | mssqltest3 | student | orecletest1 | orecletest2 | orecletest3 |
+----------+------------+------------+------------+----------+------------+------------+------------+----------+-------------+-------------+-------------+
| student1 | 60 | 70 | 80 | student1 | 80 | 60 | 70 | student1 | 80 | 60 | 50 |
+----------+------------+------------+------------+----------+------------+------------+------------+----------+-------------+-------------+-------------+
1 row in set (0.01 sec)
然而,可以让复杂的〜20桌; 此外,我只想看到值70或更高的结果。
这会发生什么最好的查询?
联盟声明? – fyr 2014-10-20 21:05:25
'JOIN's和'INDEX'es – doublesharp 2014-10-20 21:06:53