【发布时间】:2011-01-20 18:40:54
【问题描述】:
MySQL:
表1
+--------+-------+
| itemid | title |
+--------+-------+
| 1 | title |
+--------+-------+
表2
+----+--------+------------+
| id | itemid | time |
+----+--------+------------+
| 1 | 1 | 1295116368 |
+----+--------+------------+
| 1 | 2 | 1295548368 |
+----+--------+------------+
| 2 | 1 | 1294079568 |
+----+--------+------------+
PHP:
$a = mysql_query("SELECT `itemid` FROM `table2` WHERE `id` = '1' ORDER BY `time` DESC")
while($b = mysql_fetch_assoc($a))
{
echo $b['itemid'].'<br />';
}
输出:
2
1
但是,我想要在上面的查询中做的是检查 itemid 是否也包含在 table1 中,因为当它出现时,我希望它首先出现,尽管事实上它可能是较旧的帖子。
我希望这是有道理的。
所以,输出应该是:
1
2
因为itemid = 1,也包含在table1中。
【问题讨论】:
-
你应该避免像你一样使用相同的ID。拥有一个不能唯一标识任何东西的标识符是不合逻辑的。如果您尝试使用合理地期望 id 作为主键的 ORM,它会因为您有重复而崩溃。也就是说,我认为 Sam Dufel 对您的问题有正确的想法。
标签: php mysql join sql-order-by