Mysql 如何显示引用主表上两个外部ID键的表的字符串值
所以我有这个数据库 表格:费率Mysql 如何显示引用主表上两个外部ID键的表的字符串值,mysql,join,foreign-keys,Mysql,Join,Foreign Keys,所以我有这个数据库 表格:费率 ID | FID | TID | RATE --------------------------- 1 | 1 | 2 | 0.3 2 | 1 | 3 | 1.2 3 | 1 | 4 | 4.5 4 | 2 | 1 | 1.3 5 | 2 | 3 | 3.3 6 | 2 | 4 | 4.4 ID | Name
ID | FID | TID | RATE
---------------------------
1 | 1 | 2 | 0.3
2 | 1 | 3 | 1.2
3 | 1 | 4 | 4.5
4 | 2 | 1 | 1.3
5 | 2 | 3 | 3.3
6 | 2 | 4 | 4.4
ID | Name | Symbol
---------------------
1 | Euro | E
2 | Pound | P
3 | Dollar | $
4 | CAD | C
表格:货币
ID | FID | TID | RATE
---------------------------
1 | 1 | 2 | 0.3
2 | 1 | 3 | 1.2
3 | 1 | 4 | 4.5
4 | 2 | 1 | 1.3
5 | 2 | 3 | 3.3
6 | 2 | 4 | 4.4
ID | Name | Symbol
---------------------
1 | Euro | E
2 | Pound | P
3 | Dollar | $
4 | CAD | C
所以到目前为止我尝试的是
SELECT rates.*,
currencies.name,
currencies.symbol FROM RATES
JOIN CURRENCIES ON
(rates.fid = currencies.id)
这只适用于1列。我找不到更多的方法。我还想为每种货币提供一个自定义输出名称。因此,最终输出应为:
ID | FromCurrency (FID) | ToCurrency (TID) | Rate
您需要进行多个联接,并且由于两个联接都使用同一个表,所以请为它们指定一个别名 大概是这样的:
SELECT rates.ID,
a.name AS 'FromCurrency (FID)',
a.symbol AS 'FID Symbol',
b.name AS 'ToCurrency (TID)',
b.symbol AS 'TID Symbol',
rates.rate
FROM RATES
JOIN CURRENCIES AS a ON
(rates.fid = a.id)
JOIN CURRENCIES AS b ON
(rates.tid = b.id)
所以您需要从货币->欧元-/code>
到货币->美元这样的货币名称?是的。只有外汇表的id漂亮地显示为与汇率表中的id相同的名称。选择rates.id,currences.name作为from currency,currences.name作为currency,rates.rate from rates JOIN currences ON(rates.fid=currences.id)应该是这样的,尽管我遗漏了一些东西。这是不正确的。工作就像做梦一样。谢谢“AS”命令是我缺少的。最后一个SQL代码是:选择rates.id,fc.name作为fromCurrency,tc.name作为toCurrency,rates.rate从rates加入货币作为fc ON(rates.fid=fc.id)加入货币作为tc ON(rates.tid=tc.id)