如何在以下示例联合查询中区分记录的来源:
SELECT id, name, datetime FROM events
UNION
SELECT id, name, datetime FROM festival
ORDER BY datetime DESC
我在PHP中使用它的方式是:
$stmt = $cxn->prepare('SELECT id, name, datetime FROM events WHERE id = ? UNION SELECT id, name, datetime FROM festival WHERE id = ? ORDER BY datetime DESC');
$stmt->bind_param('i', $event_id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $name, $datetime);
while ($stmt->fetch()) {
echo "ID: " . $id . "\n";
echo "Name: " . $name . "\n";
echo "Date: " . $datetime;
}
$stmt->close();
请帮帮我。
感谢。
答案 0 :(得分:1)
SELECT id, name, datetime, 'events' FROM events
UNION
SELECT id, name, datetime, 'festival' FROM festival
ORDER BY datetime DESC
<强> PHP 强>
$stmt = $cxn->prepare('SELECT id, name, datetime, "events" as tablename FROM events WHERE id = ? UNION SELECT id, name, datetime, "festival" as tablename FROM festival WHERE id = ? ORDER BY datetime DESC');
$stmt->bind_param('i', $event_id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id, $name, $datetime, $table);
while ($stmt->fetch()) {
echo "ID: " . $id . "\n";
echo "Name: " . $name . "\n";
echo "Date: " . $datetime;
echo "Which Table: " . $table;
}
$stmt->close();
答案 1 :(得分:0)
你可以通过添加一个列来区分它,如:
SELECT id, name, datetime, 'E' as fromwhere FROM events
UNION
SELECT id, name, datetime,'F' as fromwhere FROM festival
ORDER BY datetime DESC
fromwhere
列会告诉您它是来自活动还是节日。