使用来自第一个MySQL查询的结果从第二个表中提取数据

时间:2014-02-25 22:15:28

标签: php mysql sql join

我有两张桌子 -

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

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

我尝试过学习JOINS,但是我的大脑让我非常失败(虽然没有正规表达的竞争,哈哈) - 有人可以请求帮助吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

您可以使用以下内容解决查询:

SELECT PHONE_NAME,PACKAGE,CONCAT(INCLUDED_VALUE,'和',DATA)来处理内部联合合作b a a.CONTRACT_NAME = b.PACKAGE

再见。