2016-11-09 25 views
0

我想知道什麼是SQL中的雙向表?如何閱讀雙向表格?

,我怎麼能閱讀這些雙向​​表

+0

[This post](http://stackoverflow.com/questions/6040991/select-a-two-way-table-in-mysql)可能會有所幫助。 – Vikrant

+0

你談論數據庫繼承嗎?可以üPLZ澄清..... – PSabuwala

+0

其實我是新的數據庫,所以我不知道什麼是數據庫的繼承。最近在一次採訪中,一位採訪者問我關於雙向表 – johnwalker10

回答

1

雙向表是沒有存儲數據的方式,但顯示數據。它沒有提到數據如何存儲。

比方說,我們店裏的人與他們的智商和他們住在鄉下沿該表可能看起來像這樣:

 
name   iq country 
John Smith 125 GB 
Mary Jones 150 GB 
Juan Lopez 150 ES 
Liz Allen 125 GB 

雙向表的智商和國家之間的關係是:

 
    | 125 | 150 
---+------+---- 
GB | 2 | 1 
ES | 0 | 1 

 
    | GB | ES 
----+-----+--- 
125 | 2 | 0 
150 | 1 | 1 

爲了從數據庫中檢索該數據你可能會寫這個查詢:

select iq, country, count(*) 
from persons 
group by iq, country; 

SQL是爲了檢索數據;它並不是真的關心它的表現和佈局。所以你應該編寫一個程序(用PHP,C#,Java等)將查詢發送到數據庫,接收數據並在循環中填入一個GUI網格。

在極少數情況下,SQL可以提供佈局本身,即向列和行提供數據。這是預先知道一個維度的屬性的時候。智商或國家通常不會出現這種情況(例如,如果我沒有告訴你,你不知道哪個國家和哪個智商出現在表格中)。但是,當然,您可以先檢索國家或智商,然後動態構建主查詢(使用條件聚合或數據透視)。預先知道值的另一種情況是布爾值,例如,人桌上的旗幟顯示一個人是否無家可歸。如果你想得到在哪個國家有多少無家可歸的人的結果,你可以很容易地寫兩列無家可歸和無家可歸的問題。

如上所述:您可以在雙向表格中顯示數據,並不會說明如何存儲這些數據。上面我給你看了一個表格的例子。但假設你在很多城市都有商店,並想知道哪些城市的人口更瘦更厚。您決定檢查您在哪些城市銷售的T恤尺寸。所以,你拿你的客戶訂單,查找客戶和他們居住的城市。你也查找訂單的細節和他們所指的項目,然後採取所有類型的T恤衫項目。涉及很多表格,但結果又是一個雙面表格,顯示了兩個屬性的關係。例如:

 
city  | S | M | L | XL 
------------+-----+-----+-----+----- 
New York | 5% | 8% | 7% | 10% 
Los Angeles | 10% | 7% | 7% | 8% 
Chicago  | 1% | 4% | 6% | 11% 
Houston  | 2% | 2% | 5% | 7%