2012-03-15 12 views
0

私は古いおならですが、私はmySQLをやったことがありますが(専門家ではありません)、これを書く良い方法があると確信しています。うまくいけば、あなたは私にこれを助けることができました。mySQL - これを行う正しい方法は?

SELECT 
    (SELECT MIN(bank_id) FROM bank) AS MinBank, 
    (SELECT MAX(bank_id) FROM bank) AS MaxBank, 
    (SELECT bank_id FROM bank WHERE bank_id = $UserID) AS OldBankID, 
    (SELECT bank_name FROM bank WHERE bank_id = OldBankID) AS OldBankName, 
    (SELECT bank_interest FROM bank WHERE bank_id = OldBankID) AS OldBankInterest, 
    (SELECT bank_fees FROM bank WHERE bank_id = OldBankID) AS OldBankFees, 
    (SELECT bank_pic_url FROM bank WHERE bank_id = OldBankID) AS BankPic 
    (SELECT bank_id FROM bank HAVING bank_id > (SELECT bank_id FROM users WHERE uid = $UserID) LIMIT 1) AS NewBankID, 
    (SELECT bank_name FROM bank WHERE bank_id = NewBankID) AS NewBankName, 
    (SELECT bank_interest FROM bank WHERE bank_id = NewBankID) AS NewBankInterest, 
    (SELECT bank_fees FROM bank WHERE bank_id = NewBankID) AS NewBankFees, 
    (SELECT bank_cost FROM bank WHERE bank_id = NewBankID) AS NewBankCost, 
FROM dwrel_bank LIMIT 1 

基本的には2つのテーブルです: (ユーザー)表1 - Bank_ID(お客様の旧ID) (銀行)表2を取得する - 彼らのOLD銀行の情報を取得し、彼らの次の "アップグレード" の可用性を取得します。

私には必要な情報がありますが、何とかこれを改善できるかどうかを見たいと思っていました。

ありがとうございます!

+0

上記と同じ構文を使用する必要が

select bank_id OldBankId ,bank_name OldBankName, bank_interest OldBankInterest , bank_fees OldBankFees, bank_pic_url as BankPic from bank where bank_Id =(select bank_id from bank where bank_id= $user_id) 

以下のようoldBankIdに基づく最初の部分を変更することができますあなたが 'usersテーブル 'から得た別のものの' bank table'からの銀行ID –

+0

基本的には、これはユーザのテーブルからBank_IDを得ることです。 このbank_idを使用して、銀行テーブルから情報を取得します。しかし、銀行のテーブルからは、同じ銀行テーブルの2つの「繰り返し」情報が必要でした。彼らの現在の銀行情報とNEXTの潜在的な「アップグレード」の情報です。 – sgkdnay

答えて

0

はあなたがnewBank IDでこれに参加し、その混乱、一つの場所にあなたが古い取得

+0

あなたが参加すると言ったら、UNIONまたはLEFT JOINを意味しますか?あまりよく分からない。 – sgkdnay

+0

'id =(id> $ userId limit 1のテーブルからidを選択してください)'の左側の結合を使用してください。 –

+0

あなたは道を見せてくれることを願っています。 – sgkdnay

関連する問題