Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AndroidSQLite从另一个表中的限定符所在的表中选择一行。_Android_Sqlite_Select_Join_Union - Fatal编程技术网

AndroidSQLite从另一个表中的限定符所在的表中选择一行。

AndroidSQLite从另一个表中的限定符所在的表中选择一行。,android,sqlite,select,join,union,Android,Sqlite,Select,Join,Union,大家好,我正在尝试组合一个更好的SQLite SELECT查询。我已经浏览了Internet上的某个站点和其他站点,但还没有找到解决此问题的方法,因此,下面是: 我在SQLite中有两个表:tblMessage和tblCategory。用户可以禁用单个消息,也可以禁用整个类别的消息 TBL消息类似于以下内容(简化): INT\u id,INT categoryId,TEXT messageText,BOOL messageHidden tblCategory如下所示(简化): INT_id,文本

大家好,我正在尝试组合一个更好的SQLite SELECT查询。我已经浏览了Internet上的某个站点和其他站点,但还没有找到解决此问题的方法,因此,下面是:

我在SQLite中有两个表:tblMessage和tblCategory。用户可以禁用单个消息,也可以禁用整个类别的消息

TBL消息类似于以下内容(简化):

INT\u id,INT categoryId,TEXT messageText,BOOL messageHidden

tblCategory如下所示(简化):

INT_id,文本类别名称,布尔类别隐藏

就目前的情况而言,我正在从第一张表中选择一条消息,其中包含

从tblMessage ORDER by RANDOM()LIMIT 1中选择*其中msgHidden=“F”

。。。然后打开另一个指向tblCategory的光标以获取匹配categoryId的信息

从tblCategory中选择*,其中_id=(第一次选择的categoryID)

然后,我继续检查categoryHidden是否为true(在代码中),在这种情况下,我返回并再次执行整个消息选择,直到得到一个不是来自隐藏类别的消息

这一切都可以正常工作,但是我怀疑我可以在初始消息SELECT语句中消除这些隐藏类别的结果,并且省去代码中的比较。我正在研究联接和联合,但我对SQL还相当陌生,还没有找到我想要的东西

这很简单,对吧


提前谢谢

您可以在一个查询中完成

SELECT tblMessage._id, tblMessage.categoryId, tblMessage.messageText,  
       tblMessage.messageHidden FROM tblMessage, tblCategory   
       WHERE tblMessage.categoryId = tblCategory._id AND tblMessage.messageHidden="F"
       AND tblCategory.categoryHidden = "F" ORDER by RANDOM() LIMIT 1;

这就是我需要的。虽然'tblCategory=“F”'需要是'tblCategory.categoryHidden=“F”'谢谢您的快速回复!