亲高手看看一个多表查询的问题

数据表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的数据 所以 业务开发的时候不能区分开始那个用户的 跪求大神提出解决方案 小弟是新手

阅读 2.4k
3 个回答

只要在 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"

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题