我需要在mysql查询中有一个基于查询结果的条件。
这个 SELECT
还给我 IVC_Recipient
我想用这些数据来做一个条件。但它不起作用。
问题是:
SELECT
KDX_Id,
KDX_Name,
KDX_FirstName,
KDX_Company,
BOO_Id,
DEB_Date,
IFNULL(SUM(IVC_Sum + IVC_Taxes), 0) AS DEB_Total,
DATEDIFF('2018-07-10', DEB_Date) AS DEB_Nb_Days,
IVC_Recipient
FROM ___Debtors
JOIN ___Invoices
ON ___Invoices.IVC_Id = ___Debtors.DEB_InvoiceId
JOIN ___Bookings
ON ___Bookings.BOO_Id = ___Invoices.IVC_BookingId
IF(IVC_Recipient = 'guest') {
JOIN ___Kardex
ON ___Kardex.KDX_Id = ___Bookings.BOO_GuestId
}
IF(IVC_Recipient = 'company') {
JOIN ___Kardex
ON ___Kardex.KDX_Id = ___Bookings.BOO_CompanyId
}
请问我这里缺什么?
谢谢。
2条答案
按热度按时间ajsxfq5m1#
你可以用
CASE
表达式:hs1rzwqc2#
几乎所有的“如果”都可以表示为and,在这些情况下:
…但根据索引使用的工作方式,有时甚至可以更简单地联接并在where条件下对结果进行排序(尽管这将是我的最后手段“我们可以通过这种方式获得更快的速度”尝试)。