![](/img/trans.png)
[英]MySQL query to select one table based on values from two different tables.
[英]mysql Selecting from two different tables.
$sql = "select body, stamp from posts where user_id = '$userid' order by stamp desc";
注意:上面的查詢工作正常。 我還想從用戶表中選擇用戶名,並顯示與user_id匹配的用戶名。
我已經像上面那樣編輯了上面的語句,但它不起作用。 有人可以提出正確的查詢嗎? 我的目標是也能夠顯示用戶名。 除了簡單地顯示user_id。
$sql = "select body, stamp from posts AND username from users where user_id = '$userid' order by stamp desc";
我的目標是也能夠顯示用戶名。 而不是簡單的user_id。
您需要使用JOIN在匹配字段上將兩個表放在一起,如下所示:
$sql = "SELECT p.body, p.stamp, u.username FROM posts p INNER JOIN users u ON p.user_id=u.user_id WHERE p.user_id='$userid' ORDER BY p.stamp DESC";
您可以使用表名稱選擇列。 例如:
$Query = "select table1.body, table1.stamp, users.username from posts, users where user_id = '$userid' order by stamp desc";
但是,這種方法的性能不好。
最好的方法是:
$Query = "SELECT table1.body, table1.stamp, users.username
FROM posts
INNER/LEFT/RIGHT JOIN users
ON users.user_id = '$userid' AND users.user_stamp = stamp.stamp_id
所有表必須相關。
問候,
$sql = "select body, stamp from posts , username from users where user_id = '$userid' order by stamp desc";
我只是在查詢糾正語法錯誤......那是應改為AND關鍵字,
。
$sql = "
select body, stamp from posts where user_id = '$userid' order by stamp desc
UNION ALL
select body, stamp from username where user_id = '$userid' order by stamp desc
";
select body, stamp, username
from posts,users
where users.user_id = post.user_id
and users.user_id = '$userid'
order by stamp desc;
您應該使用別名或表名來避免類似的重復問題
tablename.column
要么
alias.column
您可以在where子句中設置別名:
FROM table as alias_name
$sql = "SELECT p.body,p.stamp,u.username from posts p LEFT JOIN users as u ON (p.user_id = u.user_id) WHERE user_id = '$user_id' ORDER BY p.stamp DESC";
應該做
嘗試這個:
select body, stamp, username
from posts p JOIN users a ON p.user_id = a.user_id
WHERE p.user_id = '$userid' order by stamp desc
這應該工作正常:
SELECT posts.body, posts.stamp, users.username
FROM posts, users
WHERE posts.user_id = '$userid' AND posts.user_id = users.user_id
ORDER BY posts.stamp DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.