簡體   English   中英

mysql從兩個不同的表中選擇。

[英]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
";

http://dev.mysql.com/doc/refman/5.0/en/union.html

 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM