Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mySQL——正确的方法吗?_Mysql_Database - Fatal编程技术网

mySQL——正确的方法吗?

mySQL——正确的方法吗?,mysql,database,Mysql,Database,我想你可以,我是个老混蛋,但多年来我自己都不是专家,我很确定有更好的方法来写这篇文章。希望你能在这方面帮助我 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 F

我想你可以,我是个老混蛋,但多年来我自己都不是专家,我很确定有更好的方法来写这篇文章。希望你能在这方面帮助我

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
基本上是两张表: 用户表1-检索银行ID客户的旧ID 银行表2-获取其旧银行信息并检索其下一次升级可用性

它确实给了我想要的信息,但我想看看我是否能以某种方式改进它


谢谢

您可以根据oldBankId更改第一部分,如下所示

 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)

您必须将其与新银行Id连接起来,并使用与上述相同的语法

这让人困惑,在一个地方,您从银行表中获取旧银行Id,在另一个地方,您从用户表中获取旧银行Id基本上是这样的:从用户表中获取银行Id。然后使用此银行id并从银行表中获取信息。然而,从银行表中,我需要来自同一银行表的两个重复信息:他们当前的银行信息和他们下一次可能的升级。当你说加入时,你是指联合还是左加入?不太确定。使用left join on id=从表中选择id,其中id>$userId limit 1希望您能指路,我自己尝试时有点迷路了哈哈,提前谢谢: