Php 如何联接两个表并返回两个表中的所有行
我有两张桌子。对于用户和书籍,我希望联接这两个表并返回这两个表的所有行。中的公共列为“uid” 用于书籍的sql语句Php 如何联接两个表并返回两个表中的所有行,php,mysql,join,inner-join,Php,Mysql,Join,Inner Join,我有两张桌子。对于用户和书籍,我希望联接这两个表并返回这两个表的所有行。中的公共列为“uid” 用于书籍的sql语句 SELECT * FROM books ORDER BY TIME DESC; 从上面我得到了用户id“uid”,并在单独的查询中使用它 和用户 SELECT * FROM users WHERE uid = '$uid'; 我希望最终得到如下内容,而不是从table.books和table.users进出数据库 while($row = mysqli_fetch_array
SELECT * FROM books ORDER BY TIME DESC;
从上面我得到了用户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];
}
谢谢。您必须在数据库中查找联接的funda,以了解如何联接两个表以检索特定数据 试试这个:
SELECT *
FROM books b
INNER JOIN users u ON b.uid = u.uid
ORDER BY b.TIME DESC;
选择a,b。从books a内部加入用户b ON(a.id=b.uid)在不进行任何过滤的情况下,尝试使用下面的查询来查询两个表中的所有数据
select * from Users u,Books b where u.user_id=b.uid
如果给定GROUP BY或任何其他约束,则在“Where”子句后面使用“and”标记条件。这将返回来自书籍和用户的所有行
SELECT *
FROM books b
FULL OUTER JOIN users u ON b.uid=u.uid;
选择books.bookname,users.user\u firstname from books join users on books.id=users.id试试这个方法它会起作用: 使用内部联接
SELECT t1.*,t2.`user_firstname` FROM books t1
JOIN users t2 ON t2.`uid` = t1.`uid`
这称为完全连接,您可以在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;
请分享一些示例数据和您试图获得的结果。具体地说,请注意,如果某个用户有多本书,您需要什么样的输出。“连接这两个表并返回两个表的所有行”&“类似”不清楚。请讲一讲。使用足够的单词、句子和引用部分例子,清楚、完整地说出你的意思。在给出业务关系(ship)/关联或表(基或查询结果)时,请说明其中的一行根据其列值对业务状况的说明。
outer join
会更好。这是正确的,我这边有一个问题,两个表都有一列“Title”,如何从书籍中获取标题,而不是从用户那里获取标题$行['title']表示用户的标题,而不是书本中的标题。我想返回所有行,而不仅仅是书本名。在书本上,您仍然只选择user\u firstname
,它应该是*。从users
表中,我只选择user\u firstname
。这是您的选择,您可以使用*
…语法在第3行使用“完全外部连接用户u ON b.uid=u.uid”您正在发布的问题不清楚。它应该被否决,被标记/投票关闭,并对要求澄清的问题发表评论,而不是在回答帖子中猜测。(无论哪一个有足够的声誉。)这也是另一个答案的副本。请不要发布重复的答案或添加任何新内容。在发布之前,请查看编辑框下方的格式化版本。阅读“编辑帮助”“重新内联和块格式”“代码和引号”“重新换行符”。
SELECT b.*, u.uid
FROM books b
INNER JOIN users u ON b.uid = u.uid
ORDER BY b.TIME DESC;