我有一些包含各种内容的表格。我想要完成的是在div中显示这些表中的20个最新条目。
这是我的第一张表 - audio1
userID folder title date
另外两个文件夹看起来完全一样
音频2
userID folder title date
音频3
userID folder title date
如何同时从所有表中获取数据并将它们逐个回显到按日期用PHP排序的div?
答案 0 :(得分:3)
SELECT userID, folder, title, date
FROM audio1
UNION ALL
SELECT userID, folder, title, date
FROM audio2
UNION ALL
SELECT userID, folder, title, date
FROM audio3
ORDER BY date DESC LIMIT 20;
答案 1 :(得分:2)
您的SQL查询将是3部分UNION
。当不需要UNION
关系时,JOIN
查询将多个表的结果与(通常)类似的结构连接在一起,而只需要从多个表中返回行。
$sql = "SELECT userID, folder, title, date FROM audio1
UNION ALL
SELECT userID, folder, title, date FROM audio2
UNION ALL
SELECT userID, folder, title, date FROM audio3
LIMIT 20;";
$result = mysql_query($sql);
if ($result) {
// Fetch results and echo them into a list.
}
您需要一列ORDER BY
。这可能是date
,但您可能有其他计划。在ORDER BY
之前添加LIMIT 20
子句。
答案 2 :(得分:1)
您的数据库设置似乎是错误的,您必须只有一个名为“audio”的表,其中一个字段代表您当前在表名中使用的数字。
答案 3 :(得分:0)
您可以尝试联盟,也可以尝试加入。
SELECT
COALESCE(t1.userID, t2.userID, t3.userID) as userID
, t1.folder, t1.title, t1.date
, t2.folder, t2.title, t2.date
, t3.folder, t3.title, t3.date
FROM table1 t1
FULL OUTER JOIN table2 t2 ON (t1.userID = t2.userID)
FULL OUTER JOIN table3 t3 ON (t1.userID = t3.userID)
这是一个非常不同的野兽,所以我想我会给你一个选择。