我有这个代码并且它运行正常,但我在我的数据库的orders
表中添加了两个新列:
guest_user ('Y'/'N'
)
guest_phone
我想要做的是,如果guest_user
是'y'
,那么我就不会users.email
,所以请用orders.guest_phone
替换它。
如何做到这一点。任何人都可以解决它....
SELECT DISTINCT
orders.id AS 'Order Id',
users.email AS 'Email',
orders.price AS 'Amount',
orders.city_sj AS 'City',
orders.order_from AS 'Web/App',
orders.payment_status AS 'COD/PWC',
orders. AT AS 'Date and Time'
FROM users, orders, order_history
WHERE users.id = order_history.uid
AND orders.id = order_history.oid
AND orders. REAL = 1
AND orders.price > 1
AND orders. STATUS = 1
ORDER BY orders.id;
运行上面的代码我得到以下类型的输出:
谢谢
答案 0 :(得分:4)
这样的事情可以完成你想要的工作:
SELECT DISTINCT orders.id as 'Order Id',
IF(orders.guest_user = 'Y', orders.guest_phone, users.email) as 'Phone/Email',
orders.price as 'Amount', orders.city_sj as 'City',
orders.order_from as 'Web/App',
orders.payment_status as 'COD/PWC',
orders.at as 'Date and Time'
FROM users
JOIN order_history ON users.id = order_history.uid
JOIN orders ON orders.id= order_history.oid
WHERE orders.real=1 AND orders.price>1 AND orders.status=1
ORDER BY orders.id;
您还应该使用显式连接语法,而不是旧式隐式样式。