我在mysql数据库中有3个表
表1(invoice_items)
invoice_id model_no
表2(发票)
invoice_id customer_no
表3(customer_details)
customer_no email_address
我想在table1中的model_no中搜索所有具有相同model_no的发票
但我想要的真实数据是购买上述模型的客户的电子邮件地址,但我必须通过3个表格来获取它
是否有搜索查询将输出3个表的搜索/比较?
抱歉,希望我已经为我的答案提供了足够的信息 我正在使用mysql查询浏览器
提前谢谢大家 问候 汤姆
答案 0 :(得分:0)
目前无法对此进行测试,但基本思路是首先在表格customer_no
和JOIN
之间使用invoice_items
查询已购买模型的所有invoices
,如此:
SELECT b.customer_no FROM invoice_items a, invoices b
WHERE b.invoice_id = a.invoice_id
其次,使用MySQL IN
关键字将customer_details
表加入此结果集,如果email_address
存在,则选择customer_no
。这将导致查询,例如,或类似于:
SELECT c.email_address
FROM customer_details c
WHERE c.customer_no
IN
(
SELECT b.customer_no FROM invoice_items a, invoices b
WHERE b.invoice_id = a.invoice_id
)
答案 1 :(得分:0)
此简单解决方案使用INNER JOIN
将表连接在一起。
INNER JOIN
关键字选择两个表中的所有行,只要列之间匹配即可。例如。如果"发票中有行#34;在" invoice_item"中没有匹配的表格,这些发票将不会列出。
Visual Representation of SQL Joins
Select cus.emailaddress, inv1.invoice_id, cus.customer_no
From invoice_item inv1
Inner Join invoices inv2 using (invoice_id)
Inner Join customer_detail cus using (customer_no)
And inv1.model_no =xxxx;
答案 2 :(得分:0)
非常感谢你的想法......我设法完成了它的工作
请参阅下面的工作解决方案
$(document).ready(function () {
$('.show').click(function () {
$('.header-extra').addClass("down");
});
$('.hide').click(function () {
$('.header-extra').removeClass("down");
});
});