显示来自 3 个表的数据


Display data from 3 tables

我已经搞砸了这个查询 3 天了,无论如何我都无法得到正确的结果。我正在为我的一个朋友的机械车间开发一个小数据库。

car有3张桌子,jobsinvoices。一切都以"汽车"开头,如果你添加一个car你会得到car_id。下一步是向这辆车添加一个工作。当然,工作会转到jobs表,也会记录car_id。作业完成后,您可以从中创建发票,该发票转到invoices表并再次记录car_id

cars                   jobs                invoices
=======================================================
cID, make, model  | jID,cID,job1  |  iID,jID,cID,amount
 1   audi  a6     |  1   1  check |   1   1   1   99.99
 2   bmw   750    |  1   2  oil   |   2   2   2   56.97
 3   saab  95     |  3   3  oil   |   3   3   3   30.22
 1   audi  a6     |  4   1  oli   |   4   4   1   22.33

小草图表格的样子。我想要得到的结果应该是这样的:

ID     make      model
--------------------------
1.     audi      a6
       Job 1     Invoice 1
       Job 4     Invoice 4
2.     bmw       750
       Job 2     Invoice 2
3.     Saab      95
       Job 3     Invoice 3

基本上,当我单击我的客户列表时,我会得到一个包含客户的表格行,在客户下方,我想打印工作和发票的链接。很长的帖子,但我希望你明白我的意思。

我尝试过不同的 JOIN,我尝试的最新

SELECT * FROM cars
  RIGHT JOIN jobs ON cars.car_id=jobs.car_id
  RIGHT JOIN invoices ON cars.car_id=invoices.car_id
ORDER BY cars.car_id;

它有点有效,但它为具有相同客户信息的每个工作提供了单独的行。我可能打印了错误的结果。我只是不知道了。任何人都可以为此提供解决方案吗?右 SQL 命令 html 用于打印。

你为什么不把它放在一个带有如下字段的表中:

    id                  car            job            invoices 
===============+===============+==============+==============+
      1        +  fastCar      +    works     +    99.99     + 
               +               +              +              +
               +               +              +              +

用这样的语句:

CREATE TABLE cars (id int(11) AUTO_INCREMENT, car text(50) default '', job text(50) default '', invoices int(5) default NULL);

然后,您可以使用如下查询获取所有汽车属性:

SELECT job FROM cars WHERE car='fastCar';

并将所需值与另一个查询一起传递给包含以下内容的 teble作业的详细信息,例如,您可以根据需要在其中拥有作业 ID。