简体   繁体   English

左联接两个表,多列

[英]Left joining two tables, multiple columns

I need to left join two tables: Cardealers and Applications . 我需要加入两个表: CardealersApplications

I want to see which cardealers have received which applications. 我想看看哪些cardealers收到了哪些申请。

Each application is forwarded to three cardealers thus my table structure is having these 3 columns: receiver_1 , receiver_2 , receiver_3 . 每个应用程序被转发到三个cardealers因而我的表结构具有这些3列: receiver_1receiver_2receiver_3

Where the ID in the receiver columns is the same as the cardealer_id . 接收方列中的ID与cardealer_id相同。

I have this code functioning for ONE and one column only: 我的这段代码仅适用于一列:

$res1 = $wpdb->get_results( " SELECT leads.*, cardealers.*
    FROM leads
    LEFT JOIN cardealers ON leads.receiver_1 = cardealers.cardealer_id
    WHERE leads.receiver_1 = cardealers.cardealer_id
    AND cardealers.cardealer_id = '". $cardealer_id ."'" );

$res2 = $wpdb->get_results( " SELECT leads.*, cardealers.*
    FROM leads
    LEFT JOIN cardealers ON leads.receiver_2 = cardealers.cardealer_id
    WHERE leads.receiver_2 = cardealers.cardealer_id
    AND cardealers.cardealer_id = '". $cardealer_id ."'" ); 

$res3 = $wpdb->get_results( " SELECT leads.*, cardealers.*
    FROM leads
    LEFT JOIN cardealers ON leads.receiver_3 = cardealers.cardealer_id
    WHERE leads.receiver_3 = cardealers.cardealer_id
    AND cardealers.cardealer_id = '". $cardealer_id ."'" );

As you can see I do 3 separate statements which all works. 如您所见,我执行了3个独立的语句,所有语句均有效。 But I want to combine these into one statement. 但我想将这些合并为一个陈述。

How do I do this? 我该怎么做呢?

Just keep adding the tables and alias them. 只需继续添加表并为其别名。

SELECT 
   leads.*, cardealers1.*, cardealers2.*, cardealers3* 
FROM leads 
LEFT JOIN cardealers as cardealers1
   ON leads.receiver_1 = cardealers1.cardealer_id 
LEFT JOIN cardealers as cardealers2
   ON leads.receiver_2 = cardealers2.cardealer_id
LEFT JOIN cardealers as cardealers3
   ON leads.receiver_3 = cardealers3.cardealer_id
WHERE 
   leads.receiver_1 = cardealers1.cardealer_id 
   AND leads.receiver_2 = cardealers2.cardealer_id 
   AND leads.receiver_3 = cardealers3.cardealer_id 
   AND cardealers.cardealer_id = '". $cardealer_id ."'

EDIT: it's best if you give an alias for the columns from each of the cardealers 编辑:最好为每个cardealers的列提供别名

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM