簡體   English   中英

使用單個查詢從兩個不同的mysql表獲取數據時面臨的問題。

[英]Facing issues while fetching data from two different mysql tables using a single query..!

我有兩個表,一個用於發布,另一個用於用戶。 我正在從“帖子”表中獲取所有帖子,並從tbl_users中獲取用戶數據(誰發布了該帖子)。

目前,我正在使用此查詢:

$query = $pdo->prepare("SELECT * FROM `posts`,`tbl_users` WHERE id = user_id_p ORDER BY `post_id` DESC");
            $query->execute();
            return $query->fetchAll();

它工作正常,正在從posts表中獲取所有帖子,並從tbl_users中獲取用戶數據。 但是,我的問題是我不想提取所有帖子,但是我只想提取特定用戶(例如僅John)發布的那些帖子以及僅從tbl_user獲取John的用戶數據。

(來自tbl_users的字段ID和來自表帖子的user_id_p字段在兩個表中都是相同的。)

有什么建議或幫助嗎?

盡管您的查詢有效 ,但由於使用隱式交叉聯接會導致非常大的結果集,因此它根本沒有效率。
使用適當的INNER JOIN並在WHERE施加條件:

SELECT u.*, p.* 
FROM tbl_users u INNER JOIN posts p
ON u.id = p.user_id_p
WHERE u.id = ?
ORDER BY p.post_id DESC

更換? 與用戶的ID。

您可以為此使用JOIN

select P.name, U.name from post P NATURAL JOIN user U;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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