簡體   English   中英

從單列中選擇兩個值並生成結果行

[英]Selecting two values from a single column and making a result row

我的問題似乎很簡單,但我無法解決。 我有一個表,需要使用該表中僅一列的值來構造一個兩列的結果...

ID - ENTITY - CATEGORY
1    Bread    Food
2    Apple    Food
3    Computer Electronics
4    Chair    Furniture
5    TV       Electronics
6    Sofa     Furniture

我需要的結果應如下所示...

EAT_THIS - SIT_HERE
Bread      Chair

示例代碼(錯誤)...

select ENTITY as EAT_THIS from table where CATEGORY = 'Food'
select ENTITY as SIT_HERE from table where CATEGORY = 'Furniture'

....但我似乎無法弄清楚如何像我的示例結果所示那樣在同一行上獲得這兩個結果。 不知道這是否有意義,請讓我知道是否需要更多詳細信息。

謝謝

使用join可以實現以下目的:

SELECT A.entity as EAT_THIS, B.entity as SIT_HERE
FROM tablename A
JOIN tablename B
WHERE A.category = 'Food'
AND B.category = 'Furniture'

但是,不能保證您的結果將是唯一的。 如果有什么,您將得到以下結果:

Bread, Chair
Apple, Chair

...而不是(我假設您想要的):

Bread, Chair
Apple, Sofa

在這種情況下, 交叉聯接將為您提供幫助,請參見以下文章: https : //stackoverflow.com/a/16471286/2812842

更多信息

如果您未指定兩個表之間的關系(在我們的示例中為同一表),則將顯示笛卡爾積的所有可能性

SELECT A.ENTITY AS EAT_THIS , B.ENTITY AS SIT_HERE
FROM tablename A,tablename B
WHERE A.category = 'Food'
AND B.category = 'Furniture'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM