我正在开发一个旅游应用程序的项目。有些项目被添加到系统中 广告(酒店、夜总会)和一些项目添加为有用信息(海滩、国家公园)
我有一个名为 items 的表。
项目
id | category_id | name | is_payment
1 | 1 | hotel califonia | 1
2 | 1 | hotel hilton | 1
3 | 2 | Yala national park | 0
4 | 2 | Kumana national park| 0
这里的category_id指的是类别表。
类别
id | name | type
1 | Hotels | commercial
2 | National parks | non-commercial
我想从项目表中选择所有项目。
但如果它是商业项目,我需要在向最终用户显示之前检查是否已付款。
我不必展示我到目前为止所做的任何事情。 我还考虑了 CASE 函数和 IF 函数。但我不知道如何将这些与这个案例研究联系起来。 我不知道该怎么做。
最佳答案
我在下面询问您是否可以接受所有非商业项目,或者如果是商业项目,那么我正在检查付款是否也使用运营商完成。
SELECT i.*
FROM items i
JOIN categories c
ON i.category_id = c.id
WHERE c.type != 'commercial'
OR (c.type = 'commercial' AND i.is_payment = 1)
关于当涉及内连接时 MySQL 条件选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54252989/