2014-01-28 130 views
-2

我已經在它的票價製作了一個鐵路數據庫,現在我想檢索類似目的地a到b的價值或成本 - 如何?請幫我檢索,以及如何製作我想要的項目表?我不希望代碼只能幫助實現它。Mysql語法幫助請sql

+1

不能幫助,如果我們不能看到的結構的樣品,甚至列出了一些樣本數據來幫助 – DRapp

+0

表一樣有四列往返,T,成本我做現在我有麻煩以從目的地(即從t到t)取回成本。你能幫助我嗎?請給予幫助。我應該使用什麼條款(選擇費用和?) – user3237917

回答

1

因爲我沒有看到你的樣本數據,但僅根據您的意見,我會做這樣的事情......

select 
     r.cost 
    from 
     YourRailFairTable r 
    where 
     ( r.fro = 'from destination' 
      AND r.t = 'to destination') 
     OR ( r.t = 'from destination' 
      AND r.fro = 'to destination') 

因爲我不知道你的表是如何組織的,我有where子句中的OR。因爲有人可以從「城市A」到「城市B」或從「城市B」到「城市A」。因此,除非您強迫數據按照字母順序排列目的地,否則我們永遠不能假定它始終處於特定的順序。無論如何,它都可以得到。只要確保你對你的表有一個索引兩個(來回,T)

反饋根據註釋

沒有處理的自/至類型售票系統的,我會做以下這樣的系統。創建一個包含所有可能目標的表,並具有自動增量ID列。有另一張表的所有路線和費率。真正需要更多努力的更大問題是我無法直接回答的事情......例如在航空旅行中,一個人可能想從A城市前往B市,但該航空公司沒有直飛航班,需要從A到城市X到城市B.你沒有任何東西將它們連接在一起,所以你需要額外的邏輯來處理它。但對於鐵路旅行來說,即使在某些車站有轉機火車,情況可能並不那麼複雜。

CREATE TABLE Destination (
    DestinationID INT NOT NULL AUTO_INCREMENT, 
    Destination CHAR(30) NOT NULL, 
    PRIMARY KEY (DestinationID), 
    INDEX Destination (Destination)); 

那麼你的價值會是這樣

DestinationID Destination 
1    City A 
2    City B 
3    City ...Z 

接下來,您的費率表,有一個ID既自/至目的地和速度。在這種情況下,任何插入操作都會將第一個目標強制爲較低的「ID」值,因此即使目標名稱拼寫不正確並進行了調整,內部ID也不會生效。

CREATE TABLE RailRates (
    RailRateID INT NOT NULL AUTO_INCREMENT, 
    DestFrom INT, 
    DestTo INT, 
    Rate  DECIMAL(7,2), 
    PRIMARY KEY (RailRateID), 
    FOREIGN KEY (DestFrom) REFERENCES Destination (DestinationID) 
     ON DELETE CASCADE, 
    FOREIGN KEY (DestTo) REFERENCES Destination (DestinationID) 
     ON DELETE CASCADE, 
    INDEX FromTo(DestFrom, DestTo)); 

的利率表

RailRateID DestFrom DestTo Rate 
1   1   2  123.45 
2   1   3  145.67 
3   1   9  287.42 
4   1   14  321.93 
5   2   3  46.82 
6   2   9  187.18 
7   etc... 

然後樣本數據,你會提示用戶從/到的位置,獲得它們的ID,並把它們在低/高順序,因爲它不會有問題,從/對,更新語句像

select 
     r.Rate 
    from 
     RailRates r 
    where 
      r.FromDest = lowIDNumberOfOneLocation 
     AND r.ToDest = highIDNumberOfOtherLocation 
+0

謝謝沒有人幫助過我,但我會嘗試一下.DRapp – user3237917

+0

我是新來的mysql數據庫,但讓我知道如何組織一個鐵路票價數據庫我用矩陣公式。像aa,ab ....等 – user3237917

+0

你只幫我感謝DRapp。 – user3237917