我有两个表: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/