【发布时间】:2012-11-02 11:35:41
【问题描述】:
我有两个正在使用的表格示例 我正在使用输出来构建数组,所以我的输出需要是单列
第一个表是产品列表
PRODUCT ID PRODUCT_NAME
01 product1
02 product2
03 product3
04 product4
05 product5
06 product6
07 product7
08 product8
09 product9
10 product10
11 product11
12 product12
表二是购买清单
SALESID PRODUCT_NAME USERID DATE
01 product1 001ABC 11-10-2012
02 product5 001ABC 11-11-2012
03 product1 002XYZ 11-11-2012
04 product12 001ABC 11-13-2012
05 product7 001ABC 11-13-2012
06 product3 002XYZ 11-14-2012
07 product11 002XYZ 11-14-2012
现在我需要的是如果我提供像 001ABC 这样的 USERID 如果 USERID 与我提供的匹配并且(它应该自动)出现在产品表中,我需要输出为 1,如果它只出现在产品表中,我需要它显示 0
所以上面两个表的两个例子和这两个 USERID 看起来像这样
提供 USERID 001ABC 产量
OUTPUT
1
0
0
0
1
0
1
0
0
0
0
1
提供 USERID 002XYZ 产量
OUTPUT
1
0
1
0
0
0
0
0
0
0
1
0
使用 CASE 语句失败或我的语法不正确 我正在使用 PHP 和 MYSQL
只要我有一个 USERID,我当前的查询就可以正常工作,但当我尝试按 userID 进行过滤时也失败了
PHP/MYSQL 查询:
SELECT (PURCHASES.PRODUCT_NAME IS NOT NULL) AS purchased
FROM PRODUCTS
LEFT JOIN PURCHASES
ON PRODUCT_NAME = PRODUCT_NAME ORDER BY 1
我不确定我做错了什么。
当我添加另一个购买了两次的用户时,结果似乎只是在输出中添加了两行,因此输出将有 14 行,而不是我展示的示例中原来的 12 行。
我怎样才能获得单列输出,其记录总数等于每行设置为零的产品总数,除非在由产品名称标识的采购表中找到匹配项而不是零1 在输出中。
【问题讨论】: