sql - 存在一种从特定表中选择所有数据的简单方法

标签 sql ios sqlite

我有两个表:A,B。我需要从B中选择所有数据。
我可以这样做

SELECT id, b1, b2, ... b20 FROM A,B WHERE A.id = B.id; 

这不是很酷的解决方案。如果我修改B的数据库,则需要更新此语句。是否存在类似的东西?
SELECT *(B) 

它从B选择了所有数据,而没有从A选择任何数据。

我的资料库
A
id
a1
a2
...
a20 

B
id
b1
b2
...
b20

最佳答案

因此,如果您想认真地创建数据库,则不应该只看方法的复杂性,而要看效率和速度。因此,我对您的建议是使用JOIN,这是从两个或多个表中选择数据的最佳解决方案,因为这种方式尽可能快,至少对于我更清洁的用户(例如inserted select)而言。

您写道:I need to select all data from B这意味着SELECT * FROM B不是您编写的。

我对您的建议是使用此方法:

SELECT * FROM A <INNER / LEFT / RIGHT / NATURAL> JOIN B ON A.id = B.id;

或选择特定的列
SELECT A.column1, A.column2, ... FROM A <INNER / LEFT / RIGHT / NATURAL> JOIN B ON A.id = B.id;

注意:

由于主键,NATURAL JOIN将在上述示例中起作用
并且两个表中的外键具有相同的名称。所以你一定很
在没有适当的情况下谨慎使用NATURAL JOIN查询
匹配的列。

因此,您确实应该考虑如何创建数据库以及如何使用数据库,如何从数据库中提取View的数据,如何将新的潜在数据插入数据库等。

问候男人!

关于sql - 存在一种从特定表中选择所有数据的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10776423/

相关文章:

具有两列组合的 SQLite 唯一键

ios - 在 Swift 中使用 block 给出错误 "Variable used within its own initial value"

android - android sqlite 中 openhelper 的目的是什么?

android - 在 Flutter 中使用新版本更新( native )android 应用程序,同时保留数据库

mysql - SQL 查询以选择过去 7 天内 3 个不同的日子里至少使用过一次的应用程序

SQL 触发器无法正常工作

ios - 不显示来自 AppDelegate 的第一个 ViewController

android - 来自 SQLite 查询的 CursorIndexOutOfBoundsException

java - SQL/Hibernate 标准 - 按故障分组

ios - 如何快速获取wifi网络的RSSI值?