簡體   English   中英

左聯接兩個表,多列

[英]Left joining two tables, multiple columns

我需要加入兩個表: CardealersApplications

我想看看哪些cardealers收到了哪些申請。

每個應用程序被轉發到三個cardealers因而我的表結構具有這些3列: receiver_1receiver_2receiver_3

接收方列中的ID與cardealer_id相同。

我的這段代碼僅適用於一列:

$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 ."'" );

如您所見,我執行了3個獨立的語句,所有語句均有效。 但我想將這些合並為一個陳述。

我該怎么做呢?

只需繼續添加表並為其別名。

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 ."'

編輯:最好為每個cardealers的列提供別名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM