我有两个表:Place
和 Discount
具有 N<->N 关系。我还有另一个名为 place_discount
的表,它有两个外键(idPlace
和 idDiscount
)。
当我为某个地方添加折扣时,例如酒吧折扣,我将其添加到 place_discount 表中。
所以我的问题是:我有一个查询该数据库的 Android 应用程序。当我想列出我加载的所有地点时,我想在那些有折扣的地方显示一颗星。要列出我执行的 select * from place
。有没有办法执行该查询?
提示:我不能使用触发器,因为我没有 super 权限。
最佳答案
为什么不使用联接?
SELECT
Place.*,
IF(IFNULL(MIN(place_discount.idDiscount),0)>0,1,0) AS hasDiscount
FROM place
LEFT JOIN place_discount ON Place.id=place_discount.idPlace
GROUP BY Place.id
如果有折扣,将在 hasDiscount
中为您提供 1,否则为 0。
附带说明:您不需要对您拥有的表上的触发器拥有 super 权限。
关于android - MySQL 关系和实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22899070/