我正在用PHP构建一个RSS源,它使用来自三个独立表的数据.表格均指网站不同区域内的页面.我遇到的问题是尝试在XML中创建链接字段.在不知道每个记录来自哪个表的情况下,我无法创建指向它的正确链接.
有没有办法解决这个问题?我尝试使用mysql_fetch_field,但它返回了表的空白值.
$sql = "
SELECT Title FROM table1
UNION
SELECT Title FROM table2
UNION
SELECT Title FROM table3";
Run Code Online (Sandbox Code Playgroud)
还涉及其他领域,但这基本上是我正在使用的查询.
任何帮助,将不胜感激.
谢谢.
pax*_*blo 28
只需在列列表中添加一个常量,如下所示:
select 'table1' as table_name, title from table1
union all
select 'table2' as table_name, title from table2
union all
select 'table3' as table_name, title from table3
Run Code Online (Sandbox Code Playgroud)
这会得到像你这样的东西:
table_name | title
-----------+-----------------------------
table1 | war and peace
table2 | 1984
table3 | terminator salvation
Run Code Online (Sandbox Code Playgroud)
等等.
这允许您拥有字符串数据类型,这可能使您更容易转换到链接(特别是如果您使用的值只需要复制到您的页面而不是被查找或转换),并使用该as子句将允许您引用它像任何其他列(按名称).
注意使用union all- 如果你确定表中没有重复的行(在这种情况下可能是正确的,因为你有一个不同的table_name值,我假设标题是唯一的),union all可以避免浪费的排序和删除重复操作.union单独使用可能会导致不必要的工作.
如果要完成重复删除,只需恢复使用即可union.
Eri*_*lje 14
应该很容易,只需做这样的事情:
$sql = "
SELECT Title, 1 FROM table1
UNION ALL
SELECT Title, 2 FROM table2
UNION ALL
SELECT Title, 3 FROM table3";
Run Code Online (Sandbox Code Playgroud)