连接两个不同的表';s列sqlite3
hi有一个两表一表包含名为 表A _id,英语,印地语 其他表格包含 表B _id,英语,印地语 我想通过将单词与英语匹配来连接两个表如果英语单词不匹配,它将被添加到表B中的表A中,否则表A的值将保留 比如说 现在是表B 表A 结果将在表A中列出 如果您只想获得(连接两个不同的表';s列sqlite3,sql,sqlite,android-sqlite,Sql,Sqlite,Android Sqlite,hi有一个两表一表包含名为 表A _id,英语,印地语 其他表格包含 表B _id,英语,印地语 我想通过将单词与英语匹配来连接两个表如果英语单词不匹配,它将被添加到表B中的表A中,否则表A的值将保留 比如说 现在是表B 表A 结果将在表A中列出 如果您只想获得(选择)所需的输出,并且表格A可以包含表格B中不存在的记录,那么您可以模拟完全连接来实现您的目标 SELECT e.eng, COALESCE(a.hindi, b.hindi) hindi FROM ( SELECT eng
选择
)所需的输出,并且表格A
可以包含表格B
中不存在的记录,那么您可以模拟完全连接
来实现您的目标
SELECT e.eng, COALESCE(a.hindi, b.hindi) hindi
FROM
(
SELECT eng FROM TableB
UNION
SELECT eng FROM TableA
) e LEFT JOIN TableB b
ON e.eng = b.eng LEFT JOIN TableA a
ON e.eng = a.eng
另一方面,如果TableA
始终只包含TableB
的eng
值的子集,则您可以使用LEFT JOIN
SELECT b.eng, COALESCE(a.hindi, b.hindi) hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
这里是演示
现在,如果您想更新
TableA
的内容,并假设A_id
是AUTOINCREMENT
,您可以这样做
INSERT INTO TableA (eng, hindi)
SELECT b.eng, b.hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
WHERE a.eng IS NULL
这里是演示
或
这里是演示如果您只想获得(选择
)所需的输出,并且表格A
可以包含表格B
中不存在的记录,那么您可以模拟完全加入
来实现您的目标
SELECT e.eng, COALESCE(a.hindi, b.hindi) hindi
FROM
(
SELECT eng FROM TableB
UNION
SELECT eng FROM TableA
) e LEFT JOIN TableB b
ON e.eng = b.eng LEFT JOIN TableA a
ON e.eng = a.eng
另一方面,如果TableA
始终只包含TableB
的eng
值的子集,则您可以使用LEFT JOIN
SELECT b.eng, COALESCE(a.hindi, b.hindi) hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
这里是演示
现在,如果您想更新
TableA
的内容,并假设A_id
是AUTOINCREMENT
,您可以这样做
INSERT INTO TableA (eng, hindi)
SELECT b.eng, b.hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
WHERE a.eng IS NULL
这里是演示
或
这里是演示如果您只想获得(选择
)所需的输出,并且表格A
可以包含表格B
中不存在的记录,那么您可以模拟完全加入
来实现您的目标
SELECT e.eng, COALESCE(a.hindi, b.hindi) hindi
FROM
(
SELECT eng FROM TableB
UNION
SELECT eng FROM TableA
) e LEFT JOIN TableB b
ON e.eng = b.eng LEFT JOIN TableA a
ON e.eng = a.eng
另一方面,如果TableA
始终只包含TableB
的eng
值的子集,则您可以使用LEFT JOIN
SELECT b.eng, COALESCE(a.hindi, b.hindi) hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
这里是演示
现在,如果您想更新
TableA
的内容,并假设A_id
是AUTOINCREMENT
,您可以这样做
INSERT INTO TableA (eng, hindi)
SELECT b.eng, b.hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
WHERE a.eng IS NULL
这里是演示
或
这里是演示如果您只想获得(选择
)所需的输出,并且表格A
可以包含表格B
中不存在的记录,那么您可以模拟完全加入
来实现您的目标
SELECT e.eng, COALESCE(a.hindi, b.hindi) hindi
FROM
(
SELECT eng FROM TableB
UNION
SELECT eng FROM TableA
) e LEFT JOIN TableB b
ON e.eng = b.eng LEFT JOIN TableA a
ON e.eng = a.eng
另一方面,如果TableA
始终只包含TableB
的eng
值的子集,则您可以使用LEFT JOIN
SELECT b.eng, COALESCE(a.hindi, b.hindi) hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
这里是演示
现在,如果您想更新
TableA
的内容,并假设A_id
是AUTOINCREMENT
,您可以这样做
INSERT INTO TableA (eng, hindi)
SELECT b.eng, b.hindi
FROM TableB b LEFT JOIN TableA a
ON b.eng = a.eng
WHERE a.eng IS NULL
这里是演示
或
下面是演示
完全联接
是一个术语,用于组合多个表中的行。不适用于您的需要
您只需将表a
中不在表a
中的所有条目插入表b
INSERT INTO TABLE a(Eng, Hindi) SELECT Eng, Hindi FROM b WHERE eng NOT IN (SELECT eng FROM a);
完全联接
是一个术语,用于组合多个表中的行。不适用于您的需要
您只需将表a
中不在表a
中的所有条目插入表b
INSERT INTO TABLE a(Eng, Hindi) SELECT Eng, Hindi FROM b WHERE eng NOT IN (SELECT eng FROM a);
完全联接
是一个术语,用于组合多个表中的行。不适用于您的需要
您只需将表a
中不在表a
中的所有条目插入表b
INSERT INTO TABLE a(Eng, Hindi) SELECT Eng, Hindi FROM b WHERE eng NOT IN (SELECT eng FROM a);
完全联接
是一个术语,用于组合多个表中的行。不适用于您的需要
您只需将表a
中不在表a
中的所有条目插入表b
INSERT INTO TABLE a(Eng, Hindi) SELECT Eng, Hindi FROM b WHERE eng NOT IN (SELECT eng FROM a);
您是否在Android上运行MySQL?不,只使用Sqlite3Do您需要实际插入/更新(到)TableA,或者您只需要从两个表中获得所需的结果集?如果是前者,那么如何维护
A_id
?这是一个自动增量吗?我只需要从两个表中获取dsired resultset。您在Android上运行MySQL吗?不,只使用Sqlite3Do,您需要实际插入/更新(到)表中,或者只需要从两个表中获取所需的结果集?如果是前者,那么如何维护A_id
?这是一个自动增量吗?我只需要从两个表中获取dsired resultset。您在Android上运行MySQL吗?不,只使用Sqlite3Do,您需要实际插入/更新(到)表中,或者只需要从两个表中获取所需的结果集?如果是前者,那么如何维护A_id
?这是一个自动增量吗?我只需要从两个表中获取dsired resultset。您在Android上运行MySQL吗?不,只使用Sqlite3Do,您需要实际插入/更新(到)表中,或者只需要从两个表中获取所需的结果集?如果是前者,那么如何维护A_id
?这是一个自动增量
?我只需要从两个表中获取dsired resultset。OP的问题是不清楚是否确实需要更新
。皮特我正在获取所需结果,但表B中的数据没有插入表A中(仅在所需结果上)@Siddhpuramit这是我的问题,你是真的想更新TableA
的内容,还是只需要从两个表中选择所需的结果集?@Siddhpuramit如果你需要更新TableA
的内容,请查看更新的答案,以获得可能的解决方案。答案是否定的