mysql数据库select 多表查询后结果集条数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据库select 多表查询后结果集条数相关的知识,希望对你有一定的参考价值。

比如现在有两个表table1 table2
字段分别为

table1: userid email sex
table2: userid phone age

select a.*,b.age from table1 a,table2 b where a.userid=b.userid group by userid;

比如结果集字段为
userid email sex age
数据我就写不了。。关键是如何求出生成的结果集的数据列数。。

首先,你的这个sql有语法问题
其次,如果是求出你这个sql返回结果的行数的话,可以套一层:
select count(*) from (select a.*,b.age from table1 a,table2 b where a.userid=b.userid group by userid);
参考技术A userid在两个表中都应该是唯一的吧,你group by是什么意思呀?

如果需要获得结果的行数,可以使用select count(*) from table1 a,table2 b where a.userid=b.userid.

MYSQL 多表联合查询问题

是这样的,我建了三个表,存的是不同商品信息,第一个表,所有商品的CID 我设为0,第二个CID设为1 第三个表 设为2, 那我知道一件商品的ID 和CID ,怎么才能查询我所想要的结果
我做商场,建了几个商品表,把这商品的信息存放到购物车里,点击商品名字后要返回到商品列表,这个时候需要把商品的所有信息取出来,问题是这么多表,不知道从哪个表查

//先读出所有列车信息:

$query = mysql_query("SELECT * FROM A ");
$a_list = array(); //这里是 所有火车信息 数组
while($record = mysql_fetch_assoc($query))
$a_list[] = $record;


// 读取所有货物信息
$query = mysql_query("SELECT * FROM B ");
$b_list = array(); //这里是 所有货物信息 数组
while($record = mysql_fetch_assoc($query))
$hid = $record['id'];
$b_list[$hid] = $record['it_name']; //这里重要


// 循环 插入 对应的 货物名字 , 没有在读取数据库所以 速度快。
foreach($a_list as $k=>$v)
for($i=1;$i<=30;$i++)
if($v['NU'.$i] != -1)
$it_id = $v['NU'.$i]; //货物的编号
$a_list[$k]['NU_IT'.$i] = $b_list[$it_id]; //创建新的元素 插入货物名称。




//那么结果 $a_list 这个数组 就是你要的 结果了。

//这里 NU_IT1 , NU_IT2, ...... NU_IT30 这些 就是货物名字

// 这个 只是读了 2次 数据 所以 效率应该很高了。
参考技术A 三表联查 只要找出关联的字段关系来联查就行了1,,INNER JOIN ON 2, RIGHT JOIN ON 3 LEFT JOIN ON 4,JOIN ON 差不多就着几个追问

能不能讲清楚啊,能写个SQL语句出来吗,假设第一个表叫PC,第二个表Phone,第三个表是tel,三个表都有字段cid,并且每个表里商品的CID都是一样的,那我现在想查cid 是2,id是3的商品信息

追答

select a.*,b.*,c.* from a INNER JOIN b ON a.cid=b.cid INNER JOIN c ON c.cid=a.cid where a.cid=2 and a.id =3

本回答被提问者采纳
参考技术B 问题应该不难,但是你描述得让人很难明白,你举个例子吧。

以上是关于mysql数据库select 多表查询后结果集条数的主要内容,如果未能解决你的问题,请参考以下文章

mysql单表多表查询

MySQL--多表查询

记一次mysql多表查询(left jion)优化案例

MYSQL 多表联合查询问题

mysql——多表——合并查询结果

mysql--多表连接查询