当没有直接公共列时,PHP加入三个表的查询?

时间:2017-07-26 06:07:17

标签: php mysql database left-join

我有三个表,其中前两个表具有匹配记录的公共列,第二个和第三个表也有公共列但第一个和第三个表中没有直接匹配列。我该如何编写联接查询?

  1. 表1(订单)列名称为endpoints
  2. 表2( order_details )列名为 window.config = { instance: 'https://login.microsoftonline.com/', tenant: <insert tenant>, clientId: <insert clientid>, postLogoutRedirectUri: window.location.origin, cacheLocation: 'localStorage', // enable this for IE, as sessionStorage does not work for localhost. endpoints: { "https://analysis.windows.net/powerbi/api": "https://api.powerbi.com", } };
  3. 表3(测试)列名为order_id, patient_id, total, discount

2 个答案:

答案 0 :(得分:3)

我希望它有所帮助

SELECT * FROM `order`
LEFT JOIN `order_details` ON `order`.`order_id` = `order_details`.`order_id`
LEFT JOIN `tests` ON `order_details`.`test_id` = `test`.`test_id`

答案 1 :(得分:0)

"SELECT a.patient_id FROM table1 as a 
LEFT JOIN table2 as b on a.order_id = b.order_id 
LEFT JOIN table3 as c on c.test_id = b.test_id";

在一个查询中加入这个3表,我们需要为每个表分配一个名称。例如table1 AS NewNameTable1 LEFT JOIN table2 AS NewNameTable2。要连接这个3表,我们需要为每个表都有一个外键。这样这3个表能够JOIN并且我们能够在单个查询中获取数据。只要这个3表通过外键连接,就可以从任何连接的表中回显任何属性。