1

这是这个PHP mysql LEFT JOIN 输出的继续故事

我现在已经对第二个数据库(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 是数据库之间的“链接”。IE。使用 TargetID,我可以在数据库之间映射数据。

当人们将数据插入其中时,ins.data 上的数据会缓慢增加。Cu.data 是静态的,可能每年更新一次。

因为我从来没有让 PHP 工作过,所以我决定利用我的 bash 编程技能。通过 cron 脚本发送电子邮件,其中包含从数据库中获取的数据。脚本运行良好,但缺少一些数据。

现在是问题;为什么我的 SQL 子句仅从 ins.data 输出数据!?

4

1 回答 1

1

在调查连接条件问题时,首先要看的是列是否相互兼容(即相同的类型和存储大小)。

对于文本列,可能还存在不容易找到的空格和不可打印字符的问题。

于 2012-08-13T11:05:39.647 回答