mysql中多个表的复杂提取

时间:2017-05-17 10:00:15

标签: mysql join

我创建了2个具有以下架构的表

CREATE TABLE `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `email` varchar(64) DEFAULT NULL,
  `password` varchar(64) DEFAULT NULL,
  `item_name` varchar(11) DEFAULT NULL,
  `subscr_id` varchar(64) DEFAULT NULL,
  PRIMARY KEY (`id`)


CREATE TABLE `payments_data` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `subscr_id` varchar(64) DEFAULT NULL,
  `txn_type` varchar(64) DEFAULT NULL,
  `subscr_date` varchar(64) DEFAULT NULL,
  `period3` varchar(11) DEFAULT NULL,
  `amount3` varchar(64) DEFAULT NULL,
  `item_name` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)

在生产环境中,我会收到一封电子邮件(存储在用户表中),而不是为subscr_id获取email。然后,我需要为txn_type

的用户获取payments_data.subscr_id=users.subscr_id

基本上我想让txn_type获得特定email。我尝试用JOIN解决这个问题,但我的理解是浅薄的......任何想法如何创建它?

1 个答案:

答案 0 :(得分:2)

使用JOIN和WHERE过滤掉电子邮件地址的查询应该是这样的。

   SELECT 
      payments_data.txn_type
    FROM 
      users 
    INNER JOIN 
      payments_data
    ON
      users.subscr_id = payments_data.subscr_id
    WHERE
      users.email = 'example@hotmail.com'