我从网站上搜集了大量的数据,并制作了对我来说合理的表格结构。我想在MySQL中做的事情
现在,我试图根据关系拉取数据集。 所以我有一张桌子满了coin_a coin_b交易。
OPEN_TRADES: coin_id_a coin_id_b exchange_id action_type price amount time
我想要做的是从ID_A和ID_b的硬币表中加入数据。
COINS: id name short_name
我开始了与此:
SELECT `op`.`coin_id_a`, `op`.`coin_id_b`, `op`.`exchange_id`,
`op`.`action_type`, `op`.`price`, `op`.`amount`, `op`.`time`,
`c`.`name` , `c`.`short_name`
FROM `open_trades` as `op`
LEFT JOIN `coins` as `c`
ON `op`.`coin_id_a`=`c`.`id`
这个工程完全按照我预期。但它只能解决我想要的一半数据。 我想再次为coin_id_b执行此连接。
我只是没有正确的工具在我的腰带下执行此操作。坦率地说,错误我:D
我知道我可以在PHP中做到这一点,事实上我正是这样做。问题是它在php中效率不高。 我知道我的数据库会更快地做到这一点。特别是因为我的交易表在内存中运行。
结果的模式,我希望创建看起来像这样:
coin_id_a coin_id_b exchange_id action_type price amount time id_a name_a
short_name_a id_b name_b short_name_b
什么是加入从同一个表2分分别排在两个不同领域的另一个表在MySQL的正确方法?
你的意思是像'LEFT JOIN硬币一样c ON op.coin_id_a = c.id或op.coin_id_b = c.id'? – maja
不,因为我需要**硬币数据** ** coin_id_a和coin_id_b。 – Nocare
你的意思是[交叉连接](https://en.wikipedia.org/wiki/Join_(SQL)#Cross_join)? –