[英]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.