【问题标题】:How to use inner join in select with mysql?如何在使用 mysql 的 select 中使用内部连接?
【发布时间】:2012-12-13 14:15:33
【问题描述】:

我想在以下条件下从 mysql 数据库中获取记录

我有以下表格:

  • 组织_表

    organizationId | organizationname
    
  • 活动表

    camp_id | camp_name | adv_id | organizationId
    
  • 广告表

    adv_id | adv_name
    
  • ad_display 表

    ad_displayId | adv_id | camp_id |
    

现在我想从 ad_display 表中获取这样的记录:

| adv_name | camp_name | organizationname

WHERE Condtion 设为 Where organizationId == ?

所以基本上我想要organization_id=?的广告系列的广告列表?

注意:同一个 adv_id 在 camapign 表中应该有多个条目,并且同一个 camp_id 在 ad_display 中应该有多个条目

【问题讨论】:

    标签: mysql sql select join


    【解决方案1】:

    试试这个:

    SELECT ad.ad_displayId, a.adv_name, c.camp_name, o.organizationname 
    FROM ad_display ad 
    INNER JOIN advertise a ON ad.adv_id = a.adv_id 
    INNER JOIN campaign c ON ad.camp_id = c.camp_id 
    INNER JOIN organization o ON c.organizationId = o.organizationId 
    WHERE o.organizationId = ?;
    

    【讨论】:

    • thnx ...它的工作..实际上是这个 mysql 和 sql 查询的新手......但是你们所有人都很快..tnx
    【解决方案2】:

    也许是这样的?

    SELECT Distinct
      advertise.adv_name,
      campaign.camp_name,
      organization_.organizationname
    FROM
      advertise inner join campaign
      on advertise.adv_id = campaign.adv_id
      inner join organization_
      on campaign.organizationID = organization_.organizationID
    WHERE
      organization_.organizationID = 1
    

    【讨论】:

      【解决方案3】:
      SELECT  advertise.adv_name, 
              campaign.camp_name, 
              organization_Table.organizationname
      FROM   ad_display 
          INNER JOIN advertise ON ad_display.adv_id = advertise.adv_id 
          INNER JOIN campaign ON ad_display.camp_id = campaign.camp_id 
          INNER JOIN organization_ Table ON campaign.organizationId = organization_Table.organizationId
          AND organization_Table.organizationId=?
      

      【讨论】:

        【解决方案4】:
        SELECT * FROM campaign
        LEFT JOIN ad_display ON campaign.camp_id = ad_display.camp_id
        LEFT JOIN advertise ON ad_display.adv_id = advertise.adv_id
        WHERE campaign.organizationId = <?>
        

        【讨论】:

          【解决方案5】:

          使用下面的代码

          SELECT dv_name,
                 camp_name,
                 organizationname
          FROM   organization
                 inner join campaign
                         ON organization.organizationid == campaign.organizationid
                 left join advertise
                        ON campaign.adv_id == advertise.adv_id
          WHERE  condition =? ; 
          

          【讨论】:

            【解决方案6】:
            SELECT batch_number,
                   Count(receipt_number) AS tot_rec,
                   Sum(amount)           AS tot_amount
            FROM   receipt_header
            GROUP  BY batch_number
            UNION ALL
            SELECT batch_number,
                   Count(receipt_lines.receipt_number),
                   Sum(receipt_lines.amount)
            FROM   receipt_lines
                   INNER JOIN receipt_header
                           ON receipt_header.record_id = receipt_lines.header_record_id
            GROUP  BY batch_number
            ORDER  BY batch_number ASC; 
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-08-30
              • 2020-04-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多