在mysql UNION之后识别特定的表

时间:2016-10-03 22:56:58

标签: php mysqli union

我有这段代码

$query = mysqli_query($con, "SELECT id, dateAdded as date FROM table1 UNION SELECT id, dateSeen as date FROM table2 ORDER BY date DESC");
While($sql = mysqli_fetch_array($query)){
    $id = $sql['id'];
}

请问如何检测$id来自哪个表。例如,如果输出我得到这样的东西

1, 2, 1, 3, 2, 4, 3, 4, 5, 6

那么我怎么知道每个id来自哪个表,因为我想要使用函数从每个单独的表中检索其他信息,例如

$title = table_query('title', $table, $id);
$name = table_query('name', $table, $id);

1 个答案:

答案 0 :(得分:0)

你真的不能这样做。您可以做的是在查询中添加数据:

$query = mysqli_query($con, "SELECT id, dateAdded as date, 'table1' AS tblname FROM table1 UNION SELECT id, dateSeen as date, 'table2' AS tblname FROM table2 ORDER BY date DESC");
while($sql = mysqli_fetch_array($query)){
    $id = $sql['id'];
    $tbl = $sql['tblname']; // this variable will store the name of the table.
}

对于每个查询,字符串table1 | table2将添加为第3列,您可以在代码中使用它。