-3
A
回答
0
我正在定義一個示例項目和itemGroups表。
項目
ITEMID,ITEMNAME,ItemDescription
itemGroups
itemGroupId,itemGroupname,ItemGroupDescription,ITEMID
我們得到的所有項目從項目表,如果它在itemsgroups表中存在您必須比較項目表中應該使用主鍵的itemID,並將其與應存儲在項目組表中的項目進行比較。因此,SQL查詢看起來是這樣的
SELECT * FROM項目 其中ITEMID中(從itemGroups選擇ITEMID)
你coloumns名稱可能是不同的,但是這是一般概念
0
假設你有一個類似這樣的表結構:
create table items (itemid int, itemname varchar2(50));
insert all
into items (itemid, itemname) values (1,'Apples')
into items (itemid, itemname) values (2,'Bananas')
into items (itemid, itemname) values (3,'Ford')
into items (itemid, itemname) values (4,'Honda')
into items (itemid, itemname) values (5,'Football')
select * from dual;
create table itemgroups (itemgroupid int, itemid int, itemgroupname varchar2(50));
insert all
into itemgroups (itemgroupid, itemid, itemgroupname) values (1,1,'Fruits')
into itemgroups (itemgroupid, itemid, itemgroupname) values (1,2,'Fruits')
into itemgroups (itemgroupid, itemid, itemgroupname) values (2,3,'Cars')
into itemgroups (itemgroupid, itemid, itemgroupname) values (2,4,'Cars')
select * from dual;
你可以做一個left join
從您items
表中獲取的所有記錄(但只獲得每組一個項目)。然後,做一些像MAX
或MIN
聚集到只能獲得每組一個值是這樣的:
select min(i.itemid) as itemid,
min(i.itemname) as itemname,
ig.itemgroupid,
ig.itemgroupname
from items i
left join itemgroups ig on i.itemid = ig.itemid
group by ig.itemgroupid,
ig.itemgroupname
order by min(i.itemid);
結果:
+--------+----------+-------------+---------------+
| itemid | itemname | itemgroupid | itemgroupname |
+--------+----------+-------------+---------------+
| 1 | Apples | 1 | Fruits |
| 3 | Ford | 2 | Cars |
| 5 | Football | (null) | (null) |
+--------+----------+-------------+---------------+
0
如果你已經存儲在GROUPID與每個項目行,試試這個:
select *
from items i
where groupid is null or itemid = (
select min(itemid) from items i2
where i2.groupid = i.groupid
)
如果沒有建立這樣,你可能要採取這種方式的聯動:
select *
from items i
where itemid = (
select coalesce(min(ig.itemid), i.itemid)
from itemgroups ig
where ig.groupid = (select groupid from itemgroups ig2 where ig2.itemid = i.itemid)
)
相關問題
- 1. SQL查詢幫助加入
- 2. SQL查詢幫助從兩個表中
- 3. SQL查詢幫助(連接兩個表)
- 4. 幫助SQL在兩個表上加入
- 5. SQL自加入查詢幫助
- 6. SQL查詢幫助,條件加入
- 7. SQL查詢幫助 - 替代加入
- 8. SQL查詢幫助 - 加入第二個表,可能嗎?
- 9. 幫助SQL多表查詢
- 10. 幫助加入查詢(MySQL)
- 11. mysql加入查詢幫助
- 12. LINQ查詢加入 - 幫助
- 13. 加入查詢幫助
- 14. 幫助用兩個表LINQ查詢
- 15. 查詢幫助合併兩個表
- 16. 幫助一個SQL查詢
- 17. 幫助一個SQL查詢
- 18. 幫助這個SQL查詢
- 19. 幫助一個SQL查詢
- 20. 單表查詢SQL查詢幫助
- 21. 幫助sql查詢查詢
- 22. 查詢加入查詢,需要幫助
- 23. sql查詢與加入的幫助或子查詢
- 24. SQL加入兩個查詢
- 25. 幫助涉及兩個表和最大日期的sql查詢
- 26. SQL查詢幫助
- 27. SQL查詢幫助
- 28. 幫助SQL查詢
- 29. SQL - 查詢幫助
- 30. SQL查詢幫助
包括與樣本數據的表結構和預期產出和你嘗試過什麼到目前爲止? – HaveNoDisplayName
項目表和ItemGroups表 項目表具有itemid,ItemGroups具有groupid和itemid, 想要從ItemsGroups表中不存在的Items表中獲取所有ItemID,並且如果它們是組的一部分,那麼每個組只需要1個itemid。 – user4195342
如果一個項目與2個不同的組映射,那麼你需要兩行該項目?或只有一行 – HaveNoDisplayName