我有一个连接三个表的查询,让我们说Transaction
,TransactionIcdDetails
和TransactionMedicineDetails
,并且每个表都通过事务的ID链接
我的表格如下:
交易
id | price | transaction_date
------------------------------
01 | $3.00 | 23/09/2015
TransactionIcdDetails
id | transaction_id | icd
------------------------------
01 | 01 | ICD01
02 | 01 | ICD02
TransactionMedicineDetails
id | transaction_id | medicine
------------------------------
01 | 01 | MDC01
02 | 01 | MDC02
我想让查询将它们链接成一个,我使用查询设计来实现这个目标,但结果看起来像这样:
id | icd | medicine | price | transaction_date
------------------------------
01 | ICD01 | MDC01 | $3.00 | 23/09/2015
01 | ICD01 | MDC02 | $3.00 | 23/09/2015
01 | ICD02 | MDC01 | $3.00 | 23/09/2015
01 | ICD02 | MDC02 | $3.00 | 23/09/2015
请注意,icd
重复两次,与medicine
相同
我想要的输出 应如下所示:
id | icd | medicine | price | transaction_date
------------------------------
01 | ICD01 | MDC01 | $3.00 | 23/09/2015
01 | ICD02 | MDC02 | $3.00 | 23/09/2015
我如何进行这样的查询?似乎我不能仅将Distinct
用于少数几列。
如果您认为我做错了,请随意纠正我应该如何实现这一点。
更新
我可以通过创建TransactionMedicineDetails.Id
和TransactionIcdDetails.Id
之间的关系来实现它。
然而,当我有不相等数量的细节时,一切都会出错,假设我有3行TransactionMedicineDetails
和2行TransactionIcdDetails
用于单个Transaction
(反之亦然) ),没有对的那个不会出现在查询中。
知道如何让它们全部出现吗?