我有两个表,一个是按编号存储用户的用户日志
timestamp / user_id / transaction_id / amount
另一个是用户表,其中包含用户编号及其全名
user_id / fullname
我想选择整个用户日志并显示它,但不是显示他们的号码,而是从另一张表中显示他们的全名,但我无法正常工作。我一直在修改sql并打破它。有没有办法用php postgresql完成这个或我应该使用一个函数? 我一直收到一个错误,即user_id是整数,而fullname不是 请协助。
$query = "SELECT * FROM user_log
INNER JOIN user_staff
ON user_log.user_id=user_staff.user_name
ORDER BY user_log_id DESC LIMIT 200;";
$result = pg_query($query);
if (!$result) {
echo "Problem with query " . $query . "<br/>";
echo pg_last_error();
exit();
}
while($myrow = pg_fetch_assoc($result)) {
printf ("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>", $myrow['timestamp'], htmlspecialchars($myrow['user_id']), htmlspecialchars($myrow['transaction_id']), htmlspecialchars($myrow['amount']));
}
?>
答案 0 :(得分:2)
使用此查询:
SELECT "timestamp", fullname, transaction_id, amount
FROM user_log
JOIN users USING (user_id)
请注意&#34;时间戳&#34;是一个SQL保留字,您不应该将它用作列名。如果您必须使用它,请将其放在双引号中。
答案 1 :(得分:1)
也许是这样的:
SELECT user_log.timestamp, users.fullname, user_log.transaction_id, user_log.amount
FROM user_log
INNER JOIN users
ON users.user_id=user_log.user_id
ORDER BY user_log_id
DESC LIMIT 200;
您可以在此处阅读SQL联接:http://www.w3schools.com/sql/sql_join.asp