【问题标题】:Extract data from second table using results from first MySQL query使用第一个 MySQL 查询的结果从第二个表中提取数据
【发布时间】:2014-03-28 10:58:06
【问题描述】:

我有 2 张桌子 -

DEALS
----------------------------------------------
ID     PHONE_NAME    CONTRACT_NAME
19     iPhone 5      Talk 200
72     Galaxy S4     Talk 300
36     Xperia Z1     Talk 400
---------------------------------------------- etc etc

CONTRACTS
----------------------------------------------
ID     PACKAGE       INCLUDED_VALUE      DATA
11     Talk 200      100 minutes         1GB
23     Chat 750      Free insurance      2GB
63     Talk 400      Free car            700MB
84     Talk 300      Free dog            650MB
---------------------------------------------- etc etc

我正在尝试(徒劳地)做的是这样显示数据:

iPhone 5     Talk 200    100 minutes and 1GB
Galaxy S4    Talk 300    Free dog and 650MB
Xperia Za    Talk 400    Free car and 700MB

所以基本上,我想从交易表中显示每个交易及其信息,并将 DEALS 表中的 CONTRACT_NAME 与 CONTRACTS 表中的相应 PACKAGE 列(每个包都是唯一的,没有重复的)相匹配,以便显示INCLUDED_VALUE 和 DATA 列以及常规交易信息。所以最终的结果将是,而不是仅仅看到“iPhone 5 on Talk 200”,而是“iPhone 5 on Talk 200,100 分钟和 1GB 数据”。

我尝试过学习 JOINS,但我的大脑严重失败(不过,这不是正则表达式的竞争,哈哈) - 有人可以帮忙吗?

【问题讨论】:

    标签: php mysql sql join


    【解决方案1】:

    您可以通过以下方式解决您的查询:

    SELECT PHONE_NAME, PACKAGE, CONCAT(INCLUDED_VALUE, ' and ', DATA) FROM DEALS a INNER JOIN CONTRACTS b ON a.CONTRACT_NAME = b.PACKAGE

    再见。

    【讨论】:

      【解决方案2】:
      SELECT
        DEALS.PHONE_NAME,
        DEALS.CONTRACT_NAME,
        CONCAT(CONTRACTS.INCLUDED_VALUE,' and ',CONTRACTS.`DATA`)
      FROM
        DEALS INNER JOIN CONTRACTS
        ON DEALS.CONTRACT_NAME=CONTRACTS.PACKAGE
      

      【讨论】:

      • 谢谢!连接工作完美,我发现了如何将 2 列输出为单独的字符串.. 再次感谢!! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 2013-11-01
      • 1970-01-01
      • 2013-03-01
      • 1970-01-01
      • 2018-07-30
      • 2014-12-02
      相关资源
      最近更新 更多