MySQL:
table1
+--------+-------+
| itemid | title |
+--------+-------+
| 1 | title |
+--------+-------+table2
+----+--------+------------+
| 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中。
发布于 2011-01-20 18:45:32
我相信你应该能够加入表格并按标题排序。
SELECT itemid FROM table2
LEFT JOIN table1 USING (itemid)
WHERE id = '1' ORDER BY title DESC, time DESC您可能需要翻转标题上的排序,我不记得NULL值是在开头还是结尾排序的。
发布于 2011-01-20 18:45:33
使用:
SELECT `itemid` FROM `table2` t2 LEFT JOIN `table1` t1
ON t2.itemid = t1.itemid WHERE t2.`id` = '1' ORDER BY t1.itemid, t2.`time` DESChttps://stackoverflow.com/questions/4751117
复制相似问题