请教sql查询2张表的问题
程序员文章站
2024-01-13 16:27:22
...
请教sql查询2张表的问题:
A表为
id title picid
其中picid存储信息为
a:4:{s:6:"attach";s:2:"74";s:9:"show_type";s:1:"0";s:9:"user_bind";s:1:"1";s:10:"topic_bind";s:0:"";}
B表为
p_id purl
我首先通过查询A表获得了picid字段中的attach数据,输出为数组形式为
aryy{
【0】74
【1】88
....
}
那么我如何通过查询A表得到的attach去查询B表 p_id 为74 88的匹配id呢?
能给个代码解释下吗?
A表为
id title picid
其中picid存储信息为
a:4:{s:6:"attach";s:2:"74";s:9:"show_type";s:1:"0";s:9:"user_bind";s:1:"1";s:10:"topic_bind";s:0:"";}
B表为
p_id purl
我首先通过查询A表获得了picid字段中的attach数据,输出为数组形式为
aryy{
【0】74
【1】88
....
}
那么我如何通过查询A表得到的attach去查询B表 p_id 为74 88的匹配id呢?
能给个代码解释下吗?
回复讨论(解决方案)
设第一步得到的数组为
$ar = array(74, 88);
则有
$sql = 'select * from B表 where p_id in (' . join(',', $ar) . ')';
如果 picid 中 attach 出现的次序是固定的话,还可以直接关联两表查询
比如
select p_id, purl from B表, A表 where p_id = SUBSTRING_INDEX(SUBSTRING_INDEX(picid, 4), '"', -1)
设第一步得到的数组为
$ar = array(74, 88);
则有
$sql = 'select * from B表 where p_id in (' . join(',', $ar) . ')';
如果 picid 中 attach 出现的次序是固定的话,还可以直接关联两表查询
如果出现次序不是固定的呢?能关联两表查询吗
用 LOCATE 函数先定位,应该也是可以的
推荐阅读
-
请教sql查询2张表的问题
-
SQL Server数据库按百分比查询出表中的记录数
-
请教一个Criteria分页查询中的奇怪问题 HibernateGmail
-
T-SQL查询进阶--理解SQL SERVER中的分区表
-
sql server实现在多个数据库间快速查询某个表信息的方法
-
请教怎么根据某个特定字段column的值查询所在的库和表
-
请教个mysql问题.关于获取查询结果中某一个字段的最大值(按照其他字段排序)
-
SQLServer中用T—SQL命令查询一个数据库中有哪些表的sql语句
-
SQL Server 树形表非循环递归查询的实例详解
-
sql server 在多个数据库间快速查询 某个 表 的信息以及某个 列