【问题标题】:INSERT SELECT SQL from two tables从两个表中插入 SELECT SQL
【发布时间】:2018-09-12 20:42:35
【问题描述】:

我有两张表,一张 tbl_OrderLine 带有订单 ID,一张 tbl_Student 带有学生 ID。

我想从 tbl_OrderLine 中选择 OrderLineID,从 tbl_Student 中选择 StudentID

这是我迄今为止尝试过的:

INSERT INTO tbl_StudentPurchaseFromUnibooks 
  (OrderLineID, StudentID )
SELECT tbl_OrderLine.OrderLineID, 
SELECT tbl_Student.StudentID 
 WHERE tbl_Student.LoggedIn ="Yes";

tbl_OrderLine:

OrderLineID     Price       Qty
1                 5          2

tbl_Student:

StudentID     Name    LoggedIn
1             Joe      Yes

tbl_StudentPurchaseFromUnibooks:

StudentPurchaseID    OrderLineID    StudentID    PurchaseDate
1                     1               1            09/12/2012

另外,有没有人知道在 Microsoft Access 中模拟登录的简单方法。由于这只是 Microsoft Access 项目的虚拟数据库,因此安全性不是问题,但我只是想知道一种登录用户的方式。目前,如果他们已登录,我将其 LoggedIn 值更新为“是”,但显然这效率不高。如果没有人能够帮助解决这个问题,我稍后会作为一个单独的问题发布:) 谢谢!

【问题讨论】:

  • 感谢您的回复,没有任何共同的领域,我将添加一个示例
  • 已经添加了例子,我原本以为如果用户登录,他们将被收费,并且一次只有一个用户登录(因为它只是一个简单的项目数据库)但是,如果您知道更有效的方法,我将感谢您的支持!

标签: sql ms-access


【解决方案1】:

您希望将您的选择定义为一个连接,而不是两个单独的 SQL。我不太确定 MS 是如何工作的,但这样的事情应该可以解决问题:

INSERT INTO tbl_StudentPurchaseFromUnibooks (OrderLineID,   StudentID )
SELECT tbl_OrderLineID.OrderLineID, tbl_Student.StudentID
from tbl_OrderLineId
left join tbl_Student on ???
WHERE tbl_Student.LoggedIn ="Yes";

我不确定您的表是否真的应该命名为tbl_OrderLineID,您需要知道您的连接条件。

【讨论】:

  • 感谢您的回复,抱歉表格名称打错了!加入条件是什么意思?
  • 如果要匹配来自不同表的行,则需要告诉数据库要匹配(连接)各个行中的哪些列。查看此网站以帮助您入门:w3schools.com/sql/sql_join.asp
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 2013-05-28
相关资源
最近更新 更多