假设我有这些表:
- LEARNERS: LEARNER_ID, LEARNER_NAME
- PACKAGE: PACKAGE_ID, PACKAGE_NAME
- LEARNER_PACKAGES: LEARNER_ID (From LEARNERS table),
PACKAGE_ID (From PACKAGE table), DUE_DATE, DATE_COMPLETED (NULLABLE)
我想创建一个 SQL 查询来返回每个学习者的所有包:
对于 LEARNER_ID 123,返回他的所有包裹:
LEARNER_NAME, PACKAGE_NAME, DUE_DATE, DATE_COMPLETED
我试过这个:
SELECT DISTINCT p.PACKAGE_NAME, lp.PACKAGE_ID, lp.DUE_DATE, lp.DATE_COMPLETED
FROM LEARNER_PACKAGES lp,
PACKAGE p
WHERE lp.LEARNER_ID = 123 AND
lp.PACKAGE_ID = p.ID;
它返回一些意想不到的结果,只是所需输出的一部分。但我不知道接下来要尝试什么。
甲骨文快递 12.
我试图在另一台机器上运行它,它似乎工作正常。
但是,我正在接受您的提示,我将使用JOIN
.
SELECT p.PACKAGE_NAME, lp.PACKAGE_ID, lp.DUE_DATE, lp.DATE_COMPLETED
FROM LEARNER_PACKAGES lp JOIN
PACKAGE p
ON lp.PACKAGE_ID = p.ID
WHERE lp.LEARNER_ID = 123 ;
感谢@Jobin 和@Gordon Linoff 提供查询。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句