我有两张桌子:
invoices
discount_vouchers
我是invoice
表,有两个领域:
voucher_id
author_voucher_ids
voucher_id是discount_vouchers表的直接ID。
author_voucher_ids是来自discount_vouchers表的以逗号分隔的ID列表。
是否可以LEFT JOIN
这两个字段的发票和discount_vouchers表?
我尝试过:
LEFT JOIN discount_vouchers ON invoices.discount_voucher_id = discount_vouchers.id OR discount_vouchers.id IN (author_voucher_ids)
但这非常缓慢,我需要杀死这个过程。
我知道桌面发票是以错误的方式设计的,但我正在寻找解决方案而无需触及现有的表格结构。
谢谢。
答案 0 :(得分:2)
您可以使用FIND_IN_SET MySQL函数:
LEFT JOIN discount_vouchers ON invoices.discount_voucher_id = discount_vouchers.id
OR FIND_IN_SET(discount_vouchers.id, author_voucher_ids) <> 0