簡體   English   中英

如何連接兩個表並返回兩個表中的所有行

[英]How to Join two tables and return all rows from both tables

我有兩張桌子。 用戶和書籍,我想加入這兩個表並返回兩個表的所有行。 中的公共列是'uid';

書籍的 sql 語句。

SELECT * FROM books ORDER BY TIME DESC;

從上面我得到 user_id 'uid' 並在單獨的查詢中使用它。

而對於用戶。

SELECT * FROM users WHERE uid = '$uid';

我想最終得到如下內容,而不是從 table.books 和 table.users 進出數據庫。

while($row = mysqli_fetch_array($query)){
           echo $row[book_name];
           echo $row[user_firstname];
   }

謝謝。

您必須在數據庫中查找 JOIN 的基礎,以了解如何連接兩個表以檢索特定數據。

嘗試這個:

SELECT *
FROM books b 
INNER JOIN users u ON b.uid = u.uid 
ORDER BY b.TIME DESC;

選擇一個。 ,乙。 FROM 圖書 a INNER JOIN 用戶 b ON (a.id = b.uid)

嘗試使用以下查詢查詢兩個表中的所有數據,無需任何過濾

select * from Users u,Books b where u.user_id=b.uid

如果你給了 GROUP BY 或任何其他約束,那么在“Where”子句之后使用“and”marge條件。

這將返回書籍和用戶的所有行

SELECT * 
FROM books b 
FULL OUTER JOIN users u ON b.uid=u.uid;

從books 中選擇books.bookname,users.user_firstname 加入books.id=users.id 上的用戶

試試這個它會起作用:

使用內連接

SELECT t1.*,t2.`user_firstname` FROM books t1
    JOIN users t2 ON t2.`uid` = t1.`uid`

這個叫做FULL JOIN,可以在MySql中實現

SELECT *
FROM books AS b 
LEFT JOIN users AS u ON b.uid = u.uid 

UNION

SELECT *
FROM books AS b 
RIGHT JOIN users AS u ON b.uid = u.uid

有訂單

SELECT t.*
FROM (
    SELECT *
    FROM books AS b 
    LEFT JOIN users u ON b.uid = u.uid 

    UNION

    SELECT *
    FROM books AS b 
    RIGHT JOIN users AS u ON b.uid = u.uid 
) t
ORDER BY t.TIME DESC;
SELECT b.*, u.uid
FROM books b 
INNER JOIN users u ON b.uid = u.uid 
ORDER BY b.TIME DESC;

暫無
暫無

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

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