MySQL - 从多个表中选择数据

时间:2012-06-26 11:41:24

标签: php mysql

我是MySQL的新手,在尝试了一些不同的谷歌搜索并阅读了一些MySQL教程后,似乎无法获得所需的信息。

给出以下样本表:

表1(活动这是发送给客户的活动表):

ID  sendingid         list        fromaccount    
1       a1        user_new1        noreply@example.com
2       a2        user_new1        noreply@example.com
3       a3        user_new2        noreply@example.com
4       a4        user_new4        noreply@example.com

表2(跟踪 - 这是主要任务跟踪表,跟踪用户打开我们的活动):

ID  trackingid         emails            
1       a1        myexampla@gmail.com
2       a2        example@hotmail.com 
3       a3        newexample@yahoo.com
4       a4        simpler@gmail.com

表3(user_new1-这是附加了列名列表下的活动发送的列表):

ID     fname         emails                    price
1       John        myexampla@gmail.com        10
2       Bill        example@hotmail.com        20
3       sami        newexample@yahoo.com       20
4       daweoo        simpler@gmail.com        20

user_new1,user_new2,user_new3 ....... user_new80表。所有表都有类似的结构。

首先,我将从跟踪表中找到唯一的电子邮件地址,然后我找到它发送的活动表的列表, 然后我将从列表中删除该记录说user_new1并将其移动到另一个temprary表。 我们在数据库中有数百万条记录

2 个答案:

答案 0 :(得分:0)

关于表user_new1,user_new2 ... 为每个用户创建一个表真的是个好主意吗?不只是每个用户都有字段的表。

您可以使用JOIN - JOINS on w3school

从多个表格中选择数据

但是您需要连接表,例如,创建表Users和Jobs。用户有一份工作。因此在用户表中添加字段job_id并设置为作业表的外键,如果使用InnoDB引擎。 之后,您可以使用join从两个表中进行选择:

$sql = "SELECT * FROM users AS u
        JOIN jobs AS j
        ON u.job_id = j.id";

答案 1 :(得分:0)

试试此代码

 SELECT
    p.fCodigoProduto, p.fCodigoCategoria, p.fCodigoCategoriaSub, p.fCodigoVendedor,
    p.fCodigoFornecedor, p.fNomeProduto, p.fDescricao, p.fPreco,
    p.fObservacao, p.fDataCadastro, p.fStatusProduto,
    c.fNomeCategoria, 
    s.fNomeCategoriaSub,
    f.fNomeFornecedor, 
    i.fSequenciaImagem, i.fCaminhoImagem, i.fTamanhoImagem, i.fImagemProduto,
    (@rownum:=@rownum+1) as Rownumber,
   (SELECT count(*) FROM tblprodutos) as QtdeReg
 FROM
  tblprodutos p
  LEFT JOIN tblcategorias c ON p.fCodigoCategoria = c.fCodigoCategoria
  LEFT JOIN tblcategoriassub s ON p.fCodigoCategoriaSub = s.fCodigoCategoriaSub
  LEFT JOIN tblvendedores v ON p.fCodigoVendedor = v.fCodigoVendedor
  LEFT JOIN tblfornecedores f ON p.fCodigoFornecedor = f.fCodigoFornecedor
  LEFT JOIN tblimagemproduto i ON p.fCodigoProduto = i.fCodigoProduto
 ORDER BY
   fNomeProduto ASC