【发布时间】:2012-11-10 06:38:24
【问题描述】:
我有几行 mySQL 代码来显示一组与两个表相关联的结果。通过密钥 ID 关联。当没有键匹配另一个表时会出现问题 - 没有结果显示。所以我的想法是我想在 mySQL 中有一些条件,比如 if(id='999','General','concat(something with no inner join))。请看一下我的代码:
MySQL
SELECT if( log_db.log_bid = '999', 'General',
CONCAT( 'B', bk_rtype, '-', LPAD( bk_id, 5, '0' ) ) ) AS booking_no,
booking_db.bk_flg1 AS flight
FROM log_db
INNER JOIN booking_db ON booking_db.bk_id = log_db.log_bid
WHERE log_db.log_stts = '1'
ORDER BY log_db.log_id DESC
根据我的代码。我希望如果 log_bid='999' a booking_no 应该返回 'General' 但它不会。请提出建议。
【问题讨论】:
-
根据定义,
INNER JOIN ... ON需要两个表中的匹配项。我不遵循您要执行的操作,但听起来您可能想要使用常规联接,因此如果一个表没有匹配的记录,您仍然会得到结果,然后可能使用COALESCE来处理null值。
标签: mysql key inner-join