我有两个正在使用的表示例 我正在使用输出来构建数组,所以我的输出需要是单列
第一个表是产品列表
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,我需要输出为 1,如果 USERID 与我提供的匹配并且(它应该自动)它出现在产品表中并且我需要它显示 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 中而不是零输出。