Heim  >  Artikel  >  Backend-Entwicklung  >  亲高手看看一个多表查询的问题

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

WBOY
WBOYOriginal
2016-06-06 20:08:03900Durchsuche

数据表activity 中有字段 ac_id ac_title openid 等字段
数据表 apply 中有ap_id ac_id(既activity表中的ac_id) openid 等字段

现在需要先查出apply中有 符合用户的openid的字段 然后 再查询出 apply表中ac_id等于activity表中ac_id的数据集

<code>query("select * from activity,apply where apply.ac_id=activity.ac_id order by ap_id desc");</code>

这样的语句只能查询出 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的数据集

<code>query("select * from activity,apply where apply.ac_id=activity.ac_id order by ap_id desc");</code>

这样的语句只能查询出 apply表中ac_id等于activity表中ac_id的数据集 但是不知道怎么查出 apply中openid等于用户openid的数据 所以 业务开发的时候不能区分开始那个用户的 跪求大神提出解决方案 小弟是新手

只要在 sql 中加上 openid 的条件不就行了,就是如下加上 and openid='xxx'

<code>select * from activity,apply where apply.ac_id=activity.ac_id and apply.openid='xxx' order by ap_id desc</code>

假设目前要搜索的用户的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"

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn