SQL SELECT 使用三个表的语句
SQL SELECT Statement Using Three Tables
我正在尝试编写 SQL Select 语句以将一些数据从 Sybase 环境移植到 MongoDB 环境,我只是想找出正确的语法涉及三个不同的 tables.
基本上我需要做的是对两个 table 进行内部连接,然后对第三个 table 进行匹配检查。三个 table 名称是 "ar_notes"、"customer_service_xref" 和 "service_notes_details"
这是我试过的:
SELECT * FROM ar_notes arn
LEFT JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
WHERE arn.visit_date = service_notes_details.date_of_visit
这行不通。我收到相关错误。
当涉及三个这样的 table 时,语法应该是什么样的?
您说您需要在三个 table 之间进行 INNER JOIN,但您的查询在两个之间进行了 LEFT JOIN 并尝试在 WHERE 子句中进行另一个连接,而没有在 FROM 子句中引用 table。
只需修复您的查询:
SELECT *
FROM service_notes_details snd, ar_notes arn
INNER JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
WHERE arn.visit_date = snd.date_of_visit
这是您应该在当前 SQL 语法中使用的内容:
SELECT *
FROM ar_notes arn
INNER JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
INNER JOIN service_notes_details ON arn.visit_date = service_notes_details.date_of_visit
需要明确的是,这只会 ar_notes
中的 return 行在 customer_service_xref
(通过 customer_service_xref_id
加入)和 service_notes_details
中具有相应的值(加入 visit_date
)。您使用 LEFT JOIN
的原始查询将从 ar_notes
中提取 return 行,即使没有匹配的 customer_service_xref_id
.
我正在尝试编写 SQL Select 语句以将一些数据从 Sybase 环境移植到 MongoDB 环境,我只是想找出正确的语法涉及三个不同的 tables.
基本上我需要做的是对两个 table 进行内部连接,然后对第三个 table 进行匹配检查。三个 table 名称是 "ar_notes"、"customer_service_xref" 和 "service_notes_details"
这是我试过的:
SELECT * FROM ar_notes arn
LEFT JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
WHERE arn.visit_date = service_notes_details.date_of_visit
这行不通。我收到相关错误。
当涉及三个这样的 table 时,语法应该是什么样的?
您说您需要在三个 table 之间进行 INNER JOIN,但您的查询在两个之间进行了 LEFT JOIN 并尝试在 WHERE 子句中进行另一个连接,而没有在 FROM 子句中引用 table。
只需修复您的查询:
SELECT *
FROM service_notes_details snd, ar_notes arn
INNER JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
WHERE arn.visit_date = snd.date_of_visit
这是您应该在当前 SQL 语法中使用的内容:
SELECT *
FROM ar_notes arn
INNER JOIN customer_service_xref csx ON arn.customer_service_xref_id = csx.id_number
INNER JOIN service_notes_details ON arn.visit_date = service_notes_details.date_of_visit
需要明确的是,这只会 ar_notes
中的 return 行在 customer_service_xref
(通过 customer_service_xref_id
加入)和 service_notes_details
中具有相应的值(加入 visit_date
)。您使用 LEFT JOIN
的原始查询将从 ar_notes
中提取 return 行,即使没有匹配的 customer_service_xref_id
.