2

我有两张桌子:Invoice

 id number   date      client end client city   vracht
  1   4271   2014-5-28 ALLIN  STIHO      ZWOLLE 0

Materials

 id number material thickness length width amount price
  1 14271  Ocoume          10   2500  1220    150   2,3
  2 14271  Ocoume          15   2500  1220     60   2,3
  3 14271  Ocoume          18   2500  1220    125   2,3
  4 14271  Ocoume          22   2500  1220     44   2,3
  5 14271  Ocoume          40   2150  1000     72   2,3
  6 14271  Ocoume          18   3100  1530     25   2,3

Invoice表中是发票。Materials表中是属于发票的材料。

我想要的是将具有相同发票编号(表中的编号列)的那些与选择查询结合起来,如下所示:

number date      client end client city   vracht material thickness length width amount price
 14271 2014-5-28 ALLIN  STIHO      ZWOLLE      0 Ocoume          10   2500  1220    150   2,3
 14271 2014-5-28 ALLIN  STIHO      ZWOLLE      0 Ocoume          15   2500  1220     60   2,3
 14271 2014-5-28 ALLIN  STIHO      ZWOLLE      0 Ocoume          18   2500  1220    125   2,3
 14271 2014-5-28 ALLIN  STIHO      ZWOLLE      0 Ocoume          22   2500  1220     44   2,3
 14271 2014-5-28 ALLIN  STIHO      ZWOLLE      0 Ocoume          40   2150  1000     72   2,3
 14271 2014-5-28 ALLIN  STIHO      ZWOLLE      0 Ocoume          18   3100  1530     25   2,3

这个查询看起来如何?

4

5 回答 5

3
 select * from  invoice, materials where invoice.number=materials.number

建议写下所需的列,而不是 *。

于 2014-12-03T09:21:23.733 回答
3
select 
    `f`.`number`,
    `f`.`client`, 
    `f`.`eind_client`, 
    `f`.`city`, 
    `f`.`vracht`,
        `m`.`material`, 
        `m`.`thickness`, 
        `m`.`length`, 
        `m`.`width`, 
        `m`.`amount`, 
        `m`.`price`
from 
     `invoice` as `f` 
right outer join 
     `materials` as `m`
on 
    `f`.`number`=`m`.`number`
于 2014-12-03T09:25:09.380 回答
2

如前所述,如果你有一个外键关系,你可以使用 JOIN.That 应该会给你想要的结果。

你可以使用:

Select "columns you need " or "* "from invoice, materials 
WHERE invoice.number = material.number
于 2014-12-03T09:24:16.207 回答
1

您可以使用 JOIN 从两个表中检索列。

例子:

SELECT *
FROM
    Invoice AS i,
    Materials AS m,
WHERE
    m.number = i.number
    AND
    m.number = 14271
于 2014-12-03T09:22:36.750 回答
1

您可以使用联接。

  SELECT * FROM Material as M LEFT JOIN Invoice as I ON I.number=M.Number
于 2014-12-03T09:23:59.857 回答