MySQL的 - 从在查询时选择从多个表中的行多个表
SELECT语句查找表的名字......然后必要的信息(即headline
从那里取回)MySQL的 - 从在查询时选择从多个表中的行多个表
$sql="(SELECT `headline`,`date` FROM `arts`)
UNION
(SELECT `headline`,`date` FROM `lead_news`)
UNION
(SELECT `headline`,`date` FROM `opinion_analysis`)
UNION
(SELECT `headline`,`date` FROM `politics`)
UNION
(SELECT `headline`,`date` FROM `top_news`)
UNION
(SELECT `headline`,`date` FROM `lifestyle`)
ORDER BY `date` DESC LIMIT $limit ";
$result=mysql_query($sql);
while($row=mysql_fetch_assoc($result)){
echo trim(htmlspecialchars_decode($row['headline']));
}
我还需要找出每个$row
的table
名称。我找到了一个解决方案here,建议查询为:
"SELECT *, table_name as source FROM table_name"
这样$row['source']
可以返回表名。
但我想知道是否有任何关联数组键从$row
或mysql中的任何内置函数检索名称?
编辑:我写了下面的方式SELECT
命令:
SELECT `headline`,`date`, `arts` as `source` FROM `arts`
,并得到了错误:未知列“艺术”在“字段列表”。 这里采用什么方式?
SELECT `headline`,`date`, 'arts' as `source` FROM `arts`
要选择字符串“艺术”,于是把它放在'
引号,而不是反引号。
但是真的,你的餐桌设计好像很差错了。除非所有这些项目都非常不同,否则您应该有一个表,其列category
(或类似),而不是每个类别的一个表。
我明白了。非常感谢 – 2013-03-10 11:07:33
其实他们存储新闻项目...每个新闻类别都有自己的表格。 – 2013-03-10 11:09:42
这就是欺骗试图说的。如果他们都是新闻项目,你应该有一个表与新闻项目。添加另一个名为“category”的字段。 – jnovack 2013-03-10 11:46:38
投票关闭作为重复的[如何找到表名从图像中随机选择](http://stackoverflow.com/questions/12544758/how-to-find-the-table-name-which-的图像随机选择的-从)。解决方案就是解决方案。我没有看到你想要达到的目标。 – deceze 2013-03-10 10:31:15
让我访问建议的链接 – 2013-03-10 10:33:01
看起来更像是错误的结构化数据库。不要使用不推荐的mysql调用。 – 2013-03-10 10:33:28