亲高手看看一个多表查询的问题
数据表 apply 中有ap_id ac_id(既activity表中的ac_id) openid 等字段
现在需要先查出apply中有 符合用户的openid的字段 然后 再查询出 apply表中ac_id等于activity表中ac_id的数据集
query("select * from activity,apply where apply.ac_id=activity.ac_id order by ap_id desc");
这样的语句只能查询出 apply表中ac_id等于activity表中ac_id的数据集 但是不知道怎么查出 apply中openid等于用户openid的数据 所以 业务开发的时候不能区分开始那个用户的 跪求大神提出解决方案 小弟是新手
回复内容:
数据表activity 中有字段 ac_id ac_title openid 等字段
数据表 apply 中有ap_id ac_id(既activity表中的ac_id) openid 等字段
现在需要先查出apply中有 符合用户的openid的字段 然后 再查询出 apply表中ac_id等于activity表中ac_id的数据集
query("select * from activity,apply where apply.ac_id=activity.ac_id order by ap_id desc");
这样的语句只能查询出 apply表中ac_id等于activity表中ac_id的数据集 但是不知道怎么查出 apply中openid等于用户openid的数据 所以 业务开发的时候不能区分开始那个用户的 跪求大神提出解决方案 小弟是新手
只要在 sql 中加上 openid 的条件不就行了,就是如下加上 and openid='xxx'
select * from activity,apply where apply.ac_id=activity.ac_id and apply.openid='xxx' order by ap_id desc
假设目前要搜索的用户的openid = 2,你的意思是:
1.从数据表activity中搜出openid == 2的数据,作为数据集1.
2.对于数据集1中的数据,在数据表apply中查出apply.ac_id == 数据集1.ac_id 的数据?
左连接怎么样亲
select * from activity as ac left join apply as ap on ac.ac_id = ap.ac_id where openid = "xxxxx"