[英]Select from one table where id in another and replace integer with char varying from second table
我有兩個表,一個是用戶日志,按數字存儲用戶
timestamp / user_id / transaction_id / amount
另一個是用戶表,其中包含用戶號及其全名
user_id / fullname
我想選擇整個用戶日志並顯示它,但是沒有顯示他們的號碼,而是從另一個表中顯示了他們的全名,但是我無法使其正常工作。 我不斷修改SQL並將其破壞。 有沒有辦法用php postgresql完成此操作,還是應該使用一個函數? 我不斷收到一個錯誤信息,說user_id是整數,全名不是。請協助。
$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']));
}
?>
使用此查詢:
SELECT "timestamp", fullname, transaction_id, amount
FROM user_log
JOIN users USING (user_id)
請注意,“ timestamp”是SQL保留字,您不應將其用作列名。 如果必須使用它,請將其放在雙引號中。
也許像這樣:
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 Joins的內容: http : //www.w3schools.com/sql/sql_join.asp
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.