MYSQL查询条件语句
我对一个查询有问题: 我有一张桌子,上面有客户下的订单清单MYSQL查询条件语句,mysql,conditional-statements,Mysql,Conditional Statements,我对一个查询有问题: 我有一张桌子,上面有客户下的订单清单 orders: customer_id, payment_method ...some other field 我需要提取客户id,如果客户做出了至少有一笔具有特定付款方式的付款 我试过这样的方法: SELECT DISTINCT o.customer_id, CASE WHEN o.payment_method = 10 THEN 'YES' ELSE 'NO' END AS credit_card FROM orders A
orders: customer_id, payment_method ...some other field
我需要提取客户id,如果客户做出了至少有一笔具有特定付款方式的付款
我试过这样的方法:
SELECT DISTINCT o.customer_id,
CASE WHEN o.payment_method = 10 THEN 'YES' ELSE 'NO' END AS credit_card
FROM orders AS o
WHERE o.year = 2012
ORDER BY o.customer_id
但如果客户做出不同付款方式的付款显示两条记录,一条为“是”,另一条为“否”。。。只能获取一个值?您可以使用group by进行自联接,并在联接表中测试NULL(未测试):
SELECT o.customer_id,
IF(MAX(IF(o.payment_method=10, 1, 0)) = 1, 'YES', 'NO') credit_card
FROM orders o
WHERE o.year = 2012
GROUP BY o.customer_id
不确定您是否需要问题中的p.year=2012
条件
SELECT customer_id, IF(p.customer_id IS NULL, 'NO', 'YES')
FROM orders o
LEFT OUTER JOIN orders p ON o.customer_id = p.customer_id AND p.payment_method = 10
AND p.year = 2012
WHERE o.year = 2012
GROUP BY o.customer_id
ORDER BY o.customer_id