![](/img/trans.png)
[英]SQL Query to get data from one table where a specific column equals value from other table
[英]Mysql query to get row from 1 table and specific column value with where clause from other table
我正在一個項目(帶有自定義表的WordPress)上,其中有商人表和另一個帶有“ merchant_meta”名稱的表,以維護其他詳細信息,例如上次登錄,賬單日期,令牌等,如以下屏幕截圖所示
我有以下查詢以獲取所有商家
$merchants = $wpdb->get_results( "SELECT * FROM $table_name ORDER BY id DESC" );
但是,當我將其更改為following以獲取last_login元密鑰的值時,它將僅返回具有此字段值的商戶。
$merchants = $wpdb->get_results( "SELECT wp_merchants.*,wp_merchant_meta.meta_value FROM wp_merchants LEFT JOIN wp_merchant_meta ON wp_merchant_meta.merchant_id = wp_merchants.id WHERE wp_merchant_meta.meta_key = 'last_login' ORDER BY id DESC" );
如何獲得具有last_login值的所有商家?
條件wp_merchant_meta.meta_key = 'last_login'
是表聯合的條件,應在JOIN語句中
SELECT
wp_merchants.*,
wp_merchant_meta.meta_value
FROM wp_merchants
LEFT JOIN wp_merchant_meta ON wp_merchant_meta.merchant_id = wp_merchants.id
AND wp_merchant_meta.meta_key = 'last_login'
如果要獲取所有商人,無論他們是否具有last_login
值,都需要刪除WHERE
子句,該子句將LEFT JOIN
變成INNER JOIN
(請參閱手冊 ),並將該條件添加到ON
子句中,即
$merchants = $wpdb->get_results("SELECT wp_merchants.*,wp_merchant_meta.meta_value
FROM wp_merchants
LEFT JOIN wp_merchant_meta ON wp_merchant_meta.merchant_id = wp_merchants.id AND wp_merchant_meta.meta_key = 'last_login'
ORDER BY id DESC" );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.