android - MySQL 关系和实体

标签 android mysql sql triggers

我有两个表:PlaceDiscount 具有 N<->N 关系。我还有另一个名为 place_discount 的表,它有两个外键(idPlaceidDiscount)。

当我为某个地方添加折扣时,例如酒吧折扣,我将其添加到 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/

相关文章:

java - 如何防止手机熄屏后音乐停止?

android - 我的 Activity 如何在 Android 中使用大量高质量图像顺利运行?

php - 以下场景的流畅查询

MySQL - 使用 LEFT OUTER JOIN 和 WHERE 子句选择记录

sql - 在更新语法中对子查询使用内部联接

android - AppCompatDelegete 返回 null ActionBar

android - 弯曲的 ListView 分隔线

mysql - 循环遍历列并使用 MySQL 更新它?

MySQL查询最近最低值和实际值问题

sql - SELECT DISTINCT 非常慢