SQL JOIN表名上,等于字段值
问题描述:
我正在寻找一个MySQL查询(使用PHP)在时间去通过每个表一个,只显示不匹配的关键日期的所有结果在t_lastmod表中。我不知道如何说ON表名=字段值。SQL JOIN表名上,等于字段值
t_one
guid | name | lastmod
1 | Joe | 2012-01-01 01:00:00
2 | Tom | 2012-01-02 01:00:00
3 | Sue | 2012-03-01 02:00:00
t_two
guid | pet | lastmod
4 | cat | 2012-01-01 01:00:00
5 | dog | 2012-01-02 01:00:00
6 | fish | 2012-03-01 02:00:00
t_three
guid | fruit | lastmod
7 | orange | 2012-01-01 01:00:00
8 | pear | 2012-01-02 01:00:00
9 | grape | 2012-03-01 02:00:00
t_lastmod
table_name | lastmod
t_one | 2012-01-01 01:00:00
t_two | 2012-01-02 01:00:00
t_three | 2012-01-01 02:00:00
查询结果是:
t_one => 2 | Tom | 2012-01-02 01:00:00
t_one => 3 | Sue | 2012-03-01 02:00:00
t_two => 4 | cat | 2012-01-01 01:00:00
t_two => 6 | fish | 2012-03-01 02:00:00
t_three => 8 | pear | 2012-01-02 01:00:00
t_three => 9 | grape | 2012-03-01 02:00:00
到目前为止我的代码(需要在JOIN t_lastmod上的帮助...)
$tables = array('t_one', 't_two', 't_three');
foreach ($tables AS $table) {
$query = " select $table.* from $table JOIN t_lastmod ON $table = t_lastmod.TABLE_NAME WHERE $table.lastmod != t_lastmod.lastmod ";
}
查询的当前输出是什么? – 2012-03-13 00:21:33