如何编写SQL查询以从多个表中获取数据?

如何编写SQL查询以从多个表中获取数据?

问题描述:

我需要在一个报告中如何编写SQL查询以从多个表中获取数据?

不同表中的下一个数据,我需要从passport.table

enter image description here

选择从consultant.table

first_name & last_name & email & phone所有顾问信息

我在用户表中有passport_id

enter image description here

Number of consultant和他level从查询consultant.table

+1

你尝试过什么了吗? – Mureinik

+0

我使用mysql表格 – Imediasun

+0

请在格式化文本(不是图像)中共享示例数据和所需输出。请阅读[询问SQL问题](https://meta.stackoverflow.com/questions/271055/tips-for-asking-a-good-structured-query-language-sql-question/271056) – zarruq

尝试的主表做一个内部或左加入。事情是这样的:

SELECT a.first_name, a.last_name, a.email, a.phone, b.* from passport a 
LEFT JOIN user b 
ON a.id=b.passport_id 

我无法从你的截图中看到哪些字段名称是顾问和Level因此b.*皮卡所有从该表(我假设它是该表上的?)领域。无论如何,您可以轻松地自定义此查询。

+0

和咨询顾问主要我需要有关顾问的数据 – Imediasun

+0

只需添加如下所示的另一个LEFT JOIN: SELECT a.first_name,a.last_name,a.email,a.phone,b。*,c。*从护照a LEFT JOIN用户b ON a.id = b.passport_id LEFT JOIN顾问c ON a.id = c.customer_id - >其中consultant_id是与护照ID相关的外键。然而,这是不确定的,因为你没有发布你的顾问表的截图,所以你必须自己修改它。 如果您需要将数据输出为“严格”或没有空值,则可以使用INNER而不是LEFT。 – Arkhaine

+0

在这种情况下,我的错误是什么http://prntscr.com/gws8ma – Imediasun

使用此SQL查询来获取你的结果:

SELECT a.first_name, 
     a.last_name, 
     a.email, 
     a.phone, 
     b.level, 
     b.user_id 
     from passport a 
     INNER JOIN user c 
     ON a.id=c.passport_id 
     INNER JOIN consultant b 
     ON b.user_id=c.id 

Check this SQL Fiddle for output