Php 如何加入我的mysql表
通常我这样做是为了得到两张桌子Php 如何加入我的mysql表,php,mysql,Php,Mysql,通常我这样做是为了得到两张桌子 <?php $select = "SELECT * FROM question ORDER BY id DESC LIMIT 0,20"; $query = $db->query($select); while ($fetch = $db->fetch($query)) { $uselect = "SELECT * FROM user WHERE id='".intval($fetch['q_user'])."' "; $u
<?php
$select = "SELECT * FROM question ORDER BY id DESC LIMIT 0,20";
$query = $db->query($select);
while ($fetch = $db->fetch($query)) {
$uselect = "SELECT * FROM user WHERE id='".intval($fetch['q_user'])."' ";
$uquery = $db->query($uselect);
$ufetch = $db->fetch($uquery);
?>
Title : <?php echo $fetch['q_title']; ?>
User : <?php echo $ufetch['u_id']; ?>
<?php
}
?>
好吧,你可以:
SELECT *
FROM question
JOIN user ON question.q_user = user.id
ORDER BY question.id DESC
LIMIT 0, 20
我建议明确列出列,因为任何重叠(Question.id和user.id)都是不明确的。只需执行选择question.id,user.id作为uid,…
SELECT * FROM question JOIN user ON question.q_user = user.id ORDER BY question.id DESC LIMIT 0, 20
有用链接:此查询应该是正确的:
create table questions
(
question_id bigint unsigned auto_increment primary key,
user_id bigint unsigned not null,
title varchar(255),
)engine=innodb;
create table users
(
user_id bigint unsigned auto_increment primary key,
name varchar(255) not null
)engine=innodb;
// your query
select q.* from questions q
inner join users u where u.user_id = q.user_id
order by q.question_id desc
是的,我假设您希望返回询问问题的用户,因为您存储q_用户,然后需要执行一些SQL操作,如:
从问题q中选择q.q\u标题、u.u\u id加入用户u ON(q.q\u用户=u.u\u id)
您可以将您的限制等应用于此查询
SELECT * FROM question JOIN user ON question.q_user = user.id ORDER BY question.id DESC LIMIT 0, 20
create table questions
(
question_id bigint unsigned auto_increment primary key,
user_id bigint unsigned not null,
title varchar(255),
)engine=innodb;
create table users
(
user_id bigint unsigned auto_increment primary key,
name varchar(255) not null
)engine=innodb;
// your query
select q.* from questions q
inner join users u where u.user_id = q.user_id
order by q.question_id desc