我可以用ContentResolver.query()执行这个Android查询吗?(LEFT JOIN和CASE)
我希望在Android上执行以下查询(以伪代码为单位): SELECT C.ID, C.NAME, CASE ISNULL(G.GROUPID,0) = 0 THEN 0 ELSE 1 END INGROUP FROM CONTACTS C LEFT JOIN GROUPMEMBERSHIP G ON G.CONTACTID = C.ID AND G.GROUPID = ? 我希望通过默认联系人ContentProvider和一个 0/1字段指示触点是否是组?的成员. 我当然可以很容易地获得所有联系人,然后在适配器类中循环并查询会员资格,但我想象执行两个查询,因为一个外部加入查询会产生更好的性能. 我可以使用标准的高级字符串预测和ContentResolver.query()方法执行此操作吗?还是这种查询需要挖掘更直接的SQL执行? 解决方案 不,您无法使用ContentResolver.query()方法进行这种查询. 您需要写这样的东西: SQLit
2 2024-02-13
编程技术问答社区
SQLite 只获取最后一条记录而不是所有记录
我有总计 4记录在 ecare 表中,其中2 records状态是已发送= 1 和其他 2记录状态是sent = 0 记录 1st Record : Track 1 [sent = 1] 2nd Record : Track 2 [sent = 1] 3rd Record : Track 3 [sent = 0] 4th Record : Track 4 [sent = 0] ,但仅获得 last 记录(即 - 曲目4 )不是所有两个记录这些状态是 send = 0 这是Sqlite查询,我用它从数据库获取数据 public synchronized List getECareData() { String sql = "SELECT p.sent,e.*, e.no _id from ecare e LEFT JOIN pweb p ON e.h_id=p.h_id WHERE p.sent = '0' GROUP B
4 2024-01-30
编程技术问答社区
JOIN (SELECT ...) ue ON 1=1?
我正在阅读红移中的SQL查询,无法理解最后一部分: ... LEFT JOIN (SELECT MIN(modified) AS first_modified FROM user) ue ON 1=1 ON 1=1在这里意味着什么? 解决方案 它只是在做一个十字联接,该交叉连接从第一个表和第二个表中的所有行中选择所有行,并显示为笛卡尔产品,即具有所有可能性. join(左,内,右等)的语句通常需要一个" on ..."条件.放入1 = 1就像说" 1 = 1始终是正确的,不要消除任何东西". 其他解决方案 目的是 LEFT JOIN,它是 不同的 CROSS JOIN,因为返回左表表达式,即使右表表达式中没有匹配,CROSS JOIN从结果中掉下了这样的行. 有关手册中的加入的更多信息. 但是: 1=1在Postgres和包括所有衍生物包括所有衍生物亚马逊红移.只需使用true.这可能是从另一个不支持 boolean boolean boole
8 2024-01-24
编程技术问答社区
如何在左键连接中使用别名?
我在MySQL命令中有问题 select upper(file_type) as 'ItemType', ponum as 'Policy Number', office as 'Office', fullname as 'FullName', remarks as 'Remarks', concat(x.id, '-',x.file_type) as 'Identification' from (select * from active_tb union select * from processed_tb) as x left join filelocation as y on x.identification = y.f_id 我在尝试执行查询时得到unknown column x.Identification 首先,我加入两个不同的表格,然后选择所需的列,然后分配一个别名.我需要加入标识列. ,但我不能在左联接中使用别名. 解决方案 只需在左JOIN
6 2024-01-23
编程技术问答社区
在左键连接上别名一个列名
假设我有两个表,他们的主要标识符都使用名称" id".如果我想与这两个表执行连接,我该如何别名我想加入前表的表的id? 例如: SELECT * FROM `sites_indexed` LEFT JOIN `individual_data` ON `sites_indexed`.`id` = `individual_data`.`site_id` WHERE `url` LIKE :url 现在,Site_ID应该与sites_indexed.id链接.但是,代表individual_data行的实际id具有相同的 title 与sites_indexed. 就个人而言,我喜欢将名称id用于所有内容,因为它使事情保持一致.但是,当拼写服务器端时,它会使事情令人困惑. ,例如 $var = $result['id']; 给定上述查询,这不会混淆解释器吗? 无论如何,这是如何完成的? 解决方案 而不是使用"选择 *"选择所有字段,您应该
2 2024-01-23
编程技术问答社区
NHibernate 2.1: 带别名的子查询的LEFT JOIN(ICriteria)
我基本上是在尝试使用nhibernate iCriteria接口来创建此查询: 有些1:n另一个表 有些具有列:primalyke,nonggregatecolumn 另一个表面具有列:primarykey,foreferkey,externnaggregate,arthothothothothothothothothothonaggregate SELECT table1.NonAggregateColumn, subquery.SubQueryAggregate1, subquery.SubQueryAggregate2 FROM SomeTable AS table1 LEFT JOIN ( SELECT table2.ForeignKey, COUNT(table2.AnotherNonAggre
2 2024-01-23
编程技术问答社区
MongoDB将与$lookup聚合运算符一起使用Sharding
$lookup在MongoDB 3.2中是新的.它在同一数据库中执行一个左外连接到一个未分组的集合,以在"加入"集合中过滤以进行处理. . 要使用$lookup,from收集无法分解. 另一方面,碎片是一种有用的水平缩放方法. 一起使用它们的最佳实践是什么? 解决方案 当您引用的文档指出的文档时,您不能在碎片集合中使用$lookup.因此,最好的实践解决方法是在单独的查询中自己进行查找. 执行您的aggregate查询. 从查询结果中将" localfield"值提取到一个数组中,可能使用 Array#map . 使用{foreignField: {$in: localFieldArray}} 的查询,对"来自"集合进行查询find查询 将结果合并为您需要的任何格式. 不要让$lookup限制阻止您的碎片收集需要可伸缩性,只需自己执行查找功能. 其他解决方案 如MongoDB文档中所述"在$查找阶段,从集合无法分解.但是,可以将运行g
4 2024-01-20
编程技术问答社区
MYSQL获取10个帖子,每个帖子都有投票数,按投票数排序,由帖子的where子句限制。
我想获取列出的一组带有投票数的帖子,以投票计数排序(例如) Post 1 - Post Body blah blah - Votes: 500 Post 2 - Post Body blah blah - Votes: 400 Post 3 - Post Body blah blah - Votes: 300 Post 4 - Post Body blah blah - Votes: 200 我有2个表: 帖子 - 列 - id,body,is_hidden 投票 - 列 - id,post_id,vote_type_id 这是我尝试过的查询: SELECT p.*, v.yes_count FROM posts p LEFT JOIN (SELECT post_id, vote_type_id, COUNT(1) AS yes_count FROM votes WHERE (vote_type_id = 1) GROUP
0 2024-01-19
编程技术问答社区
使用LEFT JOIN和SELF JOIN以及聚合函数计算acceptance_ratio
尝试从"连接"表中计算每日接受率,该表具有4个带有样本值的字段: date action sender_id recipient_id '2017-01-05', 'request_link', 'frank', 'joe' '2017-01-06', 'request_link', 'sally', 'ann' '2017-01-07', 'request_link', 'bill', 'ted' '2017-01-07', 'accept_link', 'joe', 'frank' '2017-01-06', 'accept_link', 'ann', 'sally' '2017-01-06', 'accept_link', 'ted', 'bill' 由于在01-05上有0个接受和1个请求,因此每日接受率应为0/1 = 0.同样,01-06的比率应为2/1 01-07. 但是,每个accept_link都
6 2024-01-19
编程技术问答社区
PostgreSQL 9.3:使用array_agg函数以特定格式显示结果
我想在下表中显示给定记录中的特定格式 如下所示. 创建表:Test_1 CREATE TABLE Test_1 ( ColumnA varchar, ColumnB varchar ); 记录的插入: INSERT INTO Test_1 values('A101','B101'),('A102','B102'), ('A103','B103'),('A104','B104'), ('A105','B105'),('A106','B106'), ('A107','B107'),('A108','B108'), ('A109','B109'),('A201','B201'); 我想显示这样的结果: 预期结果: ColumnA ColumnX -------------------------------------------------------
2 2024-01-19
编程技术问答社区
如何根据条件删除结果以计算平均值和特定电影
我有下面的模式.快速解释是: 鲍勃对电影的评价为5/5 詹姆斯对电影的评价为1/5 梅西百货将电影评为5/5 没有人对电影复仇者进行评分. 逻辑: 如果我是角色,请查找我被封锁的每个人. 查找所有电影评论. 任何留下电影评论的人,角色已阻止,将其从计算中删除. 计算电影的平均评分. CREATE TABLE movies ( id integer AUTO_INCREMENT primary key, name varchar(100) NOT NULL ); CREATE TABLE customer ( id integer AUTO_INCREMENT primary key, name varchar(100) NOT NULL ); CREATE TABLE reviews ( id integer AUTO_INCREMENT primary key, rating integer NOT NULL, cus
2 2024-01-19
编程技术问答社区
SQL:两个无重复的汇总函数
如何使用两个汇总函数(例如double string_agg或仅仅是sum),但请确保结果不包含由其他聚合功能引起的重复(由第二个联接引起)?我使用postgresql. 示例 我有三张表: create table boxes ( id bigserial primary key, name varchar(255) ); create table animals ( id bigserial primary key, name varchar(255), age numeric, box_id bigint constraint animals_boxes_id references boxes ); create table vegetables ( id bigserial primary key, name varchar(255), weight n
12 2024-01-19
编程技术问答社区
如何按A,B和B返回n行B分组
使用Postgres 9.3.2,我想获得由req_time和customer_id分组的req_status的计数,并返回一组 n 行,即使在req_status计数为零. req_time req_id customer_id req_status ----------------------------------------------- 2014-03-19 100 1 'FAILED' 2014-03-19 102 1 'FAILED' 2014-03-19 105 1 'OK' 2014-03-19 106 2 'FAILED' 2014-03-20 107 1 'OK' 2014-03-20 108 2
0 2024-01-19
编程技术问答社区
来自两个单独表格的汇总计算
我有一个SALES_RECEIPT表和(销售)RETURNS表,它们都将REP_ID作为外键,SALES_REP表.我想对每个销售代表的总销售额和总回报汇总,并从销售中计算佣金以及退货损失的佣金. 查询在没有错误的情况下运行,但列中的值不正确.这些值要大得多.我尝试了内在的加入和左加入以链接返回表,但这并不能解决问题. SELECT Format(SALES_RECEIPT.SALE_DATE,'yyyy-mm') AS [Year-Month], SALES_REP.rep_Name, Sum(SALES_RECEIPT.SELLING_PRICE*SALES_RECEIPT.quantity) AS [Total Sales], Sum((Nz(SALES_RECEIPT.SELLING_PRICE,0)*Nz(SALES_RECEIPT.quantity,0))*(Nz(SALES_RECEIPT.commission_percent,100)*0.00
2 2024-01-19
编程技术问答社区
如何在时间跨度内包含多个分组的缺失数据?
我以下参考查询,哪些小组研究按教师,学习年度和过去12个月(包括当月)计算.我得到的结果是正确的,但是,我想在丢失数据时包括零计数的行. 我查看了其他几篇相关帖子,但无法获得所需的输出: postgres-要返回以0计数的行返回行? tostgresql小组月份缺少值 最佳方式按任意时间间隔计数记录rails+Postgres 这是查询: SELECT upper(trim(t.full_name)) AS teacher , date_trunc('month', s.study_dt)::date AS study_month , r.room_code AS room , COUNT(1) AS study_count FROM studies
2 2024-01-19
编程技术问答社区
Postgres LEFT JOIN with SUM,缺少记录
我试图在相关表中获取某些类型的记录的计数.我正在使用左联接. 所以我有一个不太正确的查询,并且正在返回正确的结果.正确的结果查询的执行成本更高.如果我可以纠正结果,我喜欢使用第一种方法. (请参阅 a>) CREATE TABLE people( id SERIAL, name varchar not null ); CREATE TABLE pets( id SERIAL, name varchar not null, kind varchar not null, alive boolean not null default false, person_id integer not null ); INSERT INTO people(name) VALUES ('Chad'), ('Buck'); --can't keep pets alive INSERT INTO pets(name, alive, kind, person_id)
0 2024-01-19
编程技术问答社区
SELECT COUNT(*)-如果没有匹配的行,则连同分组字段一起返回0。
我有以下查询: SELECT employee,department,count(*) AS sum FROM items WHERE ((employee = 1 AND department = 2) OR (employee = 3 AND department = 4) OR (employee = 5 AND department = 6) OR ([more conditions with the same structure])) AND available = true GROUP BY employee, department; 如果没有一个"员工 - 部门"的项目,则查询将一无所获.我希望它返回零: employee | department | sum ---------+------------+-------- 1 | 2 | 0 3
0 2024-01-19
编程技术问答社区
带有LEFT JOIN的MySQL聚合函数
现在是星期五下午*,我的大脑已经停止工作.通常是我回答这样的愚蠢的问题,对不起! 我试图获得一个表,以及另一个表格的最高值,将后者与后者连接在一起. SELECT jobs.*, MAX(notes.`timestamp`) AS complete_date FROM jobs LEFT JOIN notes ON (jobs.id=notes.job_id) WHERE (jobs.status="complete" OR jobs.status="closed") AND (notes.type="complete" OR notes.type IS NULL) GROUP BY jobs.id ORDER BY complete_date ASC 我正在尝试获得符合WHERE jobs.的所有作业,如果有一个,如果它们有一个,则是与该作业相关的最新type=complete的时间戳: Job ID Complete Date 1
4 2024-01-19
编程技术问答社区
MySQL Select和IF()语句
我是MySQL的新手,我需要帮助.我有一个表Invoices和一个表Payments.我很难生成一份报告,该报告将显示在2019年12月31日之前收到的所有发票或A Partial Payment.一张发票可以由一笔或多个付款支付(例如,部分付款,例如下跌25%,以及完成工作后的其余付款).如何创建SQL查询,该查询将从Invoices中选择所有记录,然后为每个发票选择匹配付款,将其与Invoice Total进行比较,并将显示Paid in Full或partial Payment?我有以下代码: SELECT Invoices.InvoiceID, Invoices.ClientName, Invoices.InvoiceTotal INNER JOIN InvoiceStatus ON InvoiceStatus.InvoiceStatusID = Invoices.InvoiceStatus WHERE InvoiceDate BETWEEN '2019-1-1 00:0
0 2024-01-19
编程技术问答社区
左侧外部连接与内部连接类似
摘要 我的目标是找到已分配给任务的每个用户,然后在特定日期范围内生成一些统计信息,并将统计数据与原始用户集相关联.当没有特定用户的统计信息时,我希望用户输出一行,但属性> 的NULL值. 我有一个复杂的SQL查询,看起来像这样(底部的实际查询): SELECT user_name, changeday, project_name sum(hour_delta) AS hours, FROM ( … ) tasked_users LEFT OUTER JOIN ( … ) a ON tasked_users.id=a.assignee_id WHERE (changeday IS NULL) OR (changeday >= … AND changeday
2 2024-01-19
编程技术问答社区