我需要幫助,在這裏調試我的sql查詢。讓我說,我有如下所示的表結構。需要幫助調試SQL查詢
我想在一個排都具有相同的Primary_Id和max(ROW_ID)
對於如合併結果: - 對於以下
表:custom_tab_instance 它僅包含 'primary_id' 和 'INSTANCE_ID'(不小鬼這裏)
表:custom_field_value
+---------+-------------+----------+-------+
| Row_Id | Primary_Id | Type | Value |
+=========+=============+==========+=======+
| 4 | 1 | Name | 123 |
+---------+-------------+----------+-------+
| 4 | 1 | Param_1 | 456 |
+---------+-------------+----------+-------+
| 5 | 1 | Name | 456 |
+---------+-------------+----------+-------+
| 5 | 1 | Param_1 | 213 |
+---------+-------------+----------+-------+
| 3 | 2 | Name | 745 |
+---------+-------------+----------+-------+
| 3 | 2 | Param_1 | 012 |
+---------+-------------+----------+-------+
| 4 | 2 | Name | 203 |
+---------+-------------+----------+-------+
預期結果:
+---------+-------------+------+----------+
| Row_Id | Primary_Id | Name | Param_1 |
+=========+=============+======+==========+
| 5 | 1 | 456 | 213 |
+---------+-------------+------+----------+
| 4 | 2 | 203 | NUll |
+---------+-------------+------+----------+
當前結果集:
+---------+-------------+------+----------+
| Row_Id | Primary_Id | Name | Param_1 |
+=========+=============+======+==========+
| 5 | 1 | 456 | 213 |
+---------+-------------+------+----------+
我設法弄到第一排。但是對於Promary_Id = 2,我沒有看到任何結果。
我的查詢:
select
max_cust.max_row_id as 'Row_Id',
cti.primary_id as 'Primary Id',
name.value as 'Name',
param_1.value as 'Param_1'
from custom_tab_instance cti
inner join (
select max(row_id) as max_row_id, primary_id
from custom_field_value where row_id !=null
group by primary_id
)max_cust
on max_cust.primary_id=cti.primary_id
join custom_field_value name
on name.primary_id =max_cust.primary_id
and max_cust.max_row_id=name.row_id
join custom_field_value param_1
on param_1.primary_id =max_cust.primary_id
and max_cust.max_row_id=param_1.row_id
缺少什麼我在這裏?我試圖做左連接,但它不工作。
注: 我使用Sybase
感謝。
你使用MySQL或Sybase?它們不是同一件事。另外,根據您的示例數據和查詢,我不明白您的結果集中沒有出現重複行。每個主ID都有多行匹配最大行ID。您的查詢應爲每個主ID 1和2生成4行。您提供的示例數據不具有代表性,或者您發佈的查詢不是您嘗試運行的查詢。 – Rabbit
另外,查詢是我們第一次聽到關於第二個表的信息。我們對此表一無所知,沒有示例數據,沒有DDL,甚至沒有描述它可能包含的內容。由於我們對此一無所知,因此我們對加入時發生的事情一無所知。也許這就是爲什麼你沒有看到主要的ID 2,也許它不是。我們不知道。如果該另一個表有一個主ID爲2的行,那麼我期望在該主ID的結果集中有4行。話雖如此,你有一個外連接的正確軌道。但是你沒有向我們展示你的外連接,所以我們沒有太多的診斷。 – Rabbit
@Rabbit我編輯了更多信息的問題。我也給了你確切的信息。我在這裏沒有錯過任何東西。 – SRJ