我现在已对第二个数据库(Cu.data)进行了修改,数据库表格如下:
mysql> desc ins.data;
+-------------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+------------------+------+-----+---------------------+----------------+
| ID | int(10) unsigned | NO | PRI | NULL | auto_increment |
| Date | timestamp | NO | | 0000-00-00 00:00:00 | |
| Number | text | NO | | NULL | |
| Text | text | NO | | NULL | |
| Email | text | NO | | NULL | |
| TargetID | varchar(20) | NO | | NULL | |
| CSW | text | NO | | NULL | |
| TSW | text | NO | | NULL | |
| Key | text | NO | | NULL | |
| CType | text | NO | | NULL | |
+-------------------+------------------+------+-----+---------------------+----------------+
10 rows in set (0.00 sec)
mysql> desc Cu.data;
+----------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| Title | decimal(15,0) | NO | | NULL | |
| Cu | varchar(45) | NO | | NULL | |
| Co | varchar(25) | NO | | NULL | |
| Ci | varchar(25) | NO | | NULL | |
| SID | int(12) | NO | | NULL | |
| TargetID | varchar(20) | NO | MUL | NULL | |
| SType | varchar(12) | NO | | NULL | |
+----------+---------------+------+-----+---------+-------+
7 rows in set (0.00 sec)
我的查询有点像:
mysql> SELECT ins.data.Date, ins.data.Number,
ins.data.Email, ins.data.TargetD, ins.data.CSW,
ins.data.TSW, ins.data.CType, Cu.data.Cu,
Cu.data.SID, Cu.data.Co,
Cu.data.Ci, Cu.data.SType
FROM ins.data
LEFT JOIN
Cu.data ON (ins.data.TargetID = Cu.data.TargetID);
输出显示ins.data(第一个数据库)中所有需要的值但是来自Cu.data的所有值都是'NULL'
TargetID是数据库之间的“链接”。即。使用TargetID我可以在数据库之间映射数据。
当人们将数据插入其中时,ins.data上的数据正在缓慢增加。 Cu.data是静态的,它可能每年更新一次。
由于我从未使用PHP,我决定利用我的bash编程技巧。通过cron脚本发送带有数据库中提取数据的电子邮件。脚本运行完美,但缺少一些数据。
现在问题;为什么我的SQL子句只从ins.data输出数据??
答案 0 :(得分:1)
在调查连接条件问题时,首先要看的是列是否相互兼容(即相同的类型和存储大小)。
对于文本列,可能还存在空格和不可打印字符的问题,这些字符可能无法轻易找到。