我有两个名为 t1 和 t2 的表,其内容列表如下:
mysql> use test;
Database changed
mysql> select * from t1;
+----+------+
| id | val |
+----+------+
| 1 | 100 |
| 2 | 200 |
+----+------+
2 rows in set (0.00 sec)
mysql> select * from t2;
+----+-------+
| id | val |
+----+-------+
| -1 | -1000 |
| 1 | 1000 |
| 3 | 3000 |
+----+-------+
3 rows in set (0.00 sec)
在 mysql 命令中运行了一条 sql 语句,但存在问题:
mysql> create or replace view iid as select id from t1 union select id from t2;select iid.id,t1.val,t2.val from iid left join t1 on iid.id=t1.id left join t2 on iid.id=t2.id;
Query OK, 0 rows affected (0.07 sec)
+----+------+-------+
| id | val | val |
+----+------+-------+
| 1 | 100 | 1000 |
| 2 | 200 | NULL |
| -1 | NULL | -1000 |
| 3 | NULL | 3000 |
+----+------+-------+
4 rows in set (0.00 sec)
当它在matlab中运行时出现错误:
>> sqlCmd = ['create or replace view iid as select id from t1 union select id from t2;',...
'select iid.id,t1.val,t2.val from iid',...
' left join t1 on iid.id=t1.id',...
' left join t2 on iid.id=t2.id'];
conn = database('test','root','198471',...
'com.mysql.jdbc.Driver','jdbc:mysql://127.0.0.1:3306/test');
>> curs = exec(conn,sqlCmd);
>> curs.Message
ans =
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select iid.id,t1.val,t2.val from iid left join t1 on iid.id=t1.id left join t2 o' at line 1
>> curs = exec(conn,'select * from t1');
>> curs = fetch(curs);
>> curs.Data
ans =
1 100
2 200
>> sqlCmd
我是 SQL 的纯新手,我不知道这个错误消息。
任何帮助,将不胜感激。