如何获取MySQL的结果:[从mytable中选择*作为t]?
我有这样一个SQL:如何获取MySQL的结果:[从mytable中选择*作为t]?,mysql,sql,Mysql,Sql,我有这样一个SQL: SELECT m1.id1,m2.user,m3.pass,m4.cap,m5.test FROM (SELECT * FROM mytable) AS m1, (SELECT * FROM mytable) AS m2, (SELECT * FROM mytable) AS m3, (SELECT * FROM mytable) AS m4, (SELECT * FROM mytable) AS m5 WHERE m1.id1=m2.id2 AND m1.id1=m3.i
SELECT m1.id1,m2.user,m3.pass,m4.cap,m5.test
FROM
(SELECT * FROM mytable) AS m1,
(SELECT * FROM mytable) AS m2,
(SELECT * FROM mytable) AS m3,
(SELECT * FROM mytable) AS m4,
(SELECT * FROM mytable) AS m5
WHERE m1.id1=m2.id2 AND m1.id1=m3.id3 AND m1.id1=m4.id4 AND m1.id1=m5.id5;
表mytable很大,但我需要从中获取所有信息,并且我需要多次使用子查询,问题是:如何从mytable保存querySELECT*的结果,如:
SELECT m1.id1,m2.user,m3.pass,m4.cap,m5.test
FROM
(SELECT * FROM mytable) AS m1,
m1 AS m2,
m1 AS m3,
m1 AS m4,
m1 AS m5
WHERE m1.id1=m2.id2 AND m1.id1=m3.id3 AND m1.id1=m4.id4 AND m1.id1=m5.id5;
非常感谢。您应该使用加入:
正确的方法是使用JOIN并让优化器完成其工作:
SELECT m1.id1,m2.user,m3.pass,m4.cap,m5.test
FROM mytable as m1
JOIN mytable as m2 ON m1.id1=m2.id2
JOIN mytable as m3 ON m1.id1=m3.id3
JOIN mytable as m4 ON m1.id1=m4.id4
JOIN mytable as m5 ON m1.id1=m5.id5 ;
使用子查询从表中选择所有数据是没有意义的…您是科罗拉多州最快的!
SELECT m1.id1,m2.user,m3.pass,m4.cap,m5.test
FROM mytable as m1
JOIN mytable as m2 ON m1.id1=m2.id2
JOIN mytable as m3 ON m1.id1=m3.id3
JOIN mytable as m4 ON m1.id1=m4.id4
JOIN mytable as m5 ON m1.id1=m5.id5 ;