Php 联合查询的问题
虽然我无法检索到成功的数组结果,但我正在尝试对数据库中的两个表进行简单的联合查询。应该注意的是,每个表都有不同的列,我想创建一个虚拟结果(promo作为原点[对于从'venpromo'表中提取的结果]&&vacation作为原点[对于从'vacation'表中提取的结果]),以便将结果排序到不同的数组结构中。我到处都找过,工会都使用不同的语法。提前谢谢大家Php 联合查询的问题,php,mysql,arrays,content-management-system,union,Php,Mysql,Arrays,Content Management System,Union,虽然我无法检索到成功的数组结果,但我正在尝试对数据库中的两个表进行简单的联合查询。应该注意的是,每个表都有不同的列,我想创建一个虚拟结果(promo作为原点[对于从'venpromo'表中提取的结果]&&vacation作为原点[对于从'vacation'表中提取的结果]),以便将结果排序到不同的数组结构中。我到处都找过,工会都使用不同的语法。提前谢谢大家 <?php require_once('includes/config.php'); $event_query =
<?php
require_once('includes/config.php');
$event_query = "SELECT *, promo AS origin FROM venpromo
UNION
SELECT *, vacation AS origin FROM venpromo
ORDER BY popularity DESC";
$event_result = mysql_query($event_query, $connection);
while ($event = mysql_fetch_array($event_result)) {
if ($event['origin'] == "promo") {
$event_array[] = array(
'id' => $event['id'],
'title' => $event['calname'],
'start' => $event['sdate'],
'end' => $event['edate'],
'color' => "red",
'url' => "http://www.norrisportal.com/bulletinpost.php?id=" . $event['id'] . "&hashkey=akdULjsjyUpYyTzOT7"
);
} elseif ($event['origin'] == "vacation") {
$event_array[] = array(
'id' => $event['id'],
'title' => $event['reason'],
'start' => $event['vacstart'],
'end' => $event['vacend'],
'color' => "blue"
);
}
}
echo json_encode($event_array);
?>
当访问页面查看结果时,我会看到“null”。明确地输入列名称,而不是*,并确保每个选择中的列数和数据类型与同一列匹配。 我添加了一些伪列以匹配这两个表中的数字和数据类型,并更改了列的顺序 尝试以下示例方式:
select
id,
uid,
approval,
vacstart,
vacend,
reason,
'dummy1' col1,
'dummy2' col2,
'dummy3' col3,
curdate() col4,
'dummy4' col5,
'dummy5' col6,
'dummy6' col7,
'dummy7' col8,
promo AS origin
from vacation
union
select
id,
venid,
authid,
sdate,
edate,
authname,
tags,
title,
calname,
date,
intro,
body,
sum,
sortdate,
vacation AS origin
from venpromo;
您能给出这两个表的列及其数据类型吗?您遇到了什么错误?请在问题中添加表结构。在讨论联合查询时,此信息非常重要。此链接显示PHPMyAdmin中结构的屏幕截图。请原谅我的无知,我是新加入工会的,再次感谢你们的帮助@AjithSasidharan-我已经提交了一个到表结构的链接。谢谢我是唯一一个没有看到您在表结构中查询的列的人吗?+1,因为答案在理论上是正确的;不过,我看不出表中的
promo
和vacation
列在哪里