jquery - 两个表中三列的值之间的差异

标签 jquery sql sqlite

我有两个文件,每个文件包含三列。

data1.txt : https://pastebin.com/ezVr6KPi

# P (Gpa)       G / F. unit  (a.u.)     T (K)
-4.4119598462100 -941.5590019525371 10.0000000000000
-4.4115664473800 -941.5589977004460 30.1000000000000
-4.4084485632200 -941.5589688036446 50.2000000000000
-4.3989188608700 -941.5588816009147 70.3000000000000
...

data2.txt : https://pastebin.com/veqBi8Er

# P (Gpa)       G / F. unit  (a.u.)     T (K)
7.5789845745700 -941.3858364185293 10.0000000000000
7.5936983738200 -941.3856461092793 30.1000000000000
7.6147899594200 -941.3853929461748 50.2000000000000
7.6413267974900 -941.3851062350891 70.3000000000000
...

我创建了 2 个表,并将列命名为 tables.sql脚本:

.headers on

CREATE TABLE C_I("P1" TEXT, "G1" TEXT, "T1" TEXT);
CREATE TABLE C_II("P2" TEXT, "G2" TEXT, "T2" TEXT);

我导入数据:

.separator " "

.import './data1.txt'  C_I
.import './data2.txt'  C_II

然后我从文件中删除 native header ,只是为了更好地引用上面给出的列名称:

select T1 from C_I LIMIT 3;
select P1 from C_I LIMIT 3;
select G1 from C_I LIMIT 3;

DELETE FROM C_I WHERE T1 == '(Gpa)';
DELETE FROM C_I WHERE P1 == '#';
DELETE FROM C_I WHERE G1 == 'P';

DELETE FROM C_II WHERE T2 == '(Gpa)';
DELETE FROM C_II WHERE P2 == '#';
DELETE FROM C_II WHERE G2 == 'P';

select * from C_I LIMIT 3;
select * from C_II LIMIT 3;

我正在尝试获取 P1 的值, G1 , T1 , P2 , G2 , T2其中:

P1 = P2 (阈值内)AND T1 = T2 (阈值内)AND G1 = G2 (在阈值内)。

为此,我这样做:

更新:

选项 1:

SELECT * FROM   C_I l1,  C_II l2
WHERE
    ABS(l1.P1-l2.P2) < 0.005
    AND
    ABS(l1.T1-l2.T2) < 20.0
    AND
    ABS(l1.G1-l2.G2) < 0.005

这将打印以下错误:

Error: incomplete SQL: SELECT * FROM   C_I l1,  C_II l2 
WHERE 
    ABS(l1.P1-l2.P2) < 0.005
    AND
    ABS(l1.T1-l2.T2) < 20.0
    AND
    ABS(l1.G1-l2.G2) < 0.005

选项 2:添加 ;

SELECT * FROM   C_I l1,  C_II l2;
WHERE
    ABS(l1.P1-l2.P2) < 0.005
    AND
    ABS(l1.T1-l2.T2) < 20.0
    AND
    ABS(l1.G1-l2.G2) < 0.005

在这种情况下,整个两个表都通过终端显示, 显然这段代码没有效果。即使我将阈值设置为 0.0在这三个语句中,情况是相同的(如果阈值是 0.0 则不会有输出)。

选项 3: 正如 @Myonara 建议的那样,添加 ;这里:

SELECT P, G, T FROM   C_I l1 ,  C_II  l2
WHERE
    ABS(l1.P1-l2.P2) < 0.005;
    AND
    ABS(l1.T1-l2.T2) < 20.0
    AND
    ABS(l1.G-l2.G2) < 0.005

产生此错误:

Error: incomplete SQL: AND
    ABS(l1.T1-l2.T2) < 20.0
    AND
    ABS(l1.G1-l2.G2) < 0.005

因此,我无法理解的东西不起作用

如果您能帮助我,我将不胜感激。

完整脚本: tables.sql :

我将其运行为:sqlite3 < tables.sql :

.headers on

CREATE TABLE C_I("P1" TEXT, "G1" TEXT, "T1" TEXT);
CREATE TABLE C_II("P2" TEXT, "G2" TEXT, "T2" TEXT);

.separator " "

.import './data1.txt'  C_I
.import './data2.txt'  C_II


select T1 from C_I LIMIT 3;
select P1 from C_I LIMIT 3;
select G1 from C_I LIMIT 3;


DELETE FROM C_I WHERE T1 == '(Gpa)';
DELETE FROM C_I WHERE P1 == '#';
DELETE FROM C_I WHERE G1 == 'P';

DELETE FROM C_II WHERE T2 == '(Gpa)';
DELETE FROM C_II WHERE P2 == '#';
DELETE FROM C_II WHERE G2 == 'P';


select * from C_I LIMIT 3;
select * from C_II LIMIT 3;


SELECT * FROM   C_I l1,  C_II l2;
WHERE
    ABS(l1.P1-l2.P2) < 0.005
    AND
    ABS(l1.T1-l2.T2) < 20.0
    AND
    ABS(l1.G1-l2.G2) < 0.005

最佳答案

尝试这个,因为这就是 SELECT 的完整 sql 语法,您需要它:

SELECT P, G, T FROM   C_I l1 ,  C_II  l2
WHERE
    ABS(l1.P-l2.P) < 0.005
    AND
    ABS(l1.T-l2.T) < 20.0
    AND
    ABS(l1.G-l2.G) < 0.005;

关于jquery - 两个表中三列的值之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45536652/

相关文章:

javascript - jQuery 动态元素 - 如何删除元素并保存事件数据?

jquery - 在具有多个输入的 Jquery Autocomplete 中无法获取当前用户输入的输入值?

javascript - 如何在javascript字符串之间附加一些东西?

sql - 检查查询的执行时间精确到微秒

php - PHP中使用PDO基于主键读取MySQL数据库

android - Sqlite 数据库应该只创建一次

c# - dotConnect 或 "sqlite.phxsoftware.com"用于将 Entity Framework 与 SQLite 结合使用

javascript - 如何动态使用 jQuery 切换方法?

Java Sql 从列中选择月份

java - android从数据库类内部传递变量