【发布时间】:2012-07-23 06:07:48
【问题描述】:
我正在尝试构建一个基于 PHP 的网络软件,但遇到了一个我不知道解决方案语法的问题。
基本上,我有两张桌子:
+-------------+ +---------------+
| Certs | | Clients |
+-------------+ +---------------+
| userID | | eID |
| prodID | | prods |
| prodName | +---------------+
+-------------+
在这里,个人购买的每件产品都由其唯一的用户 ID 和产品的唯一产品 ID 存储。
客户就像卖家,他们自己有不同的 ID,prods 是一串以逗号分隔的产品 ID。
certs 表中的示例行如下:
userID | prodID | prodName
------------------------------
9000 | 42 | Pen
4234 | 54 | Pencil
9000 | 54 | Pencil
一个示例客户端行如下:
eID | prods
-------------
595 | 42,54
现在,我需要形成一个查询,返回已购买特定卖家所有产品的所有用户 ID。
例如,对于卖家 ID 595,它应该返回 9000,因为用户 ID 9000 同时购买了 42 和 54。
为方便起见,可以修改表格结构,但由于其他技术问题,我无法创建与其卖家相关的产品的标准化列表。
任何帮助将不胜感激!谢谢~
注意:另一种说法是将卖家的产品列表保存在结果类型数组中。 然后 SELECT prodID FROM certs WHERE userID = x 最后检查 prodID 的结果数组是否包含数组 prods 的所有元素。
【问题讨论】:
-
你能解释一下你想要什么输出吗?
-
我希望它返回购买了单个卖家所有产品的所有用户的用户ID。 IE。如果卖家 A 出售钢笔和铅笔。我想要购买钢笔和铅笔的所有用户的用户 ID。
-
表示一个或多个产品或购买了每个产品的用户列表?
-
是的,我想要一个购买了特定卖家所有产品的用户列表。
标签: php mysql codeigniter