我已经搞乱了这个查询3天了,无论我怎么都得不到正确的结果。我正在为我的一位朋友为他的机械师工作一个小型数据库。
我有3个表car
,jobs
和invoices
。一切都始于"汽车"如果您添加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用于打印。
答案 0 :(得分:0)
为什么不把它放在一个包含以下字段的表中:
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的详细信息。