假设我有2张桌子(我们称之为Price和SP(特价))。我想从表Price中获取所有行,但如果它与表SP中的某些内容匹配(意味着该行存在特殊价格),则应用这些值。我现在已经测试了一些连接,我不确定它是否是正确的方法,请指教,谢谢!
答案 0 :(得分:1)
由于可以是SP中的条目,但不必,您需要外连接表。然后检查你是否有值。 COALESCE为您做到了这一点。
select
price.item,
coalesce(sp.value, price.value)
from price
left join sp on sp.item = price.item;
答案 1 :(得分:0)
这似乎对我有用mysql:
SELECT
IF(ISNULL(sp.price) OR sp.price='', p.price, sp.price) AS price
FROM price p
JOIN specialprice sp ON sp.id = p.id
<强>更新强>
重新考虑这一点,只有在specialprice
中price
中的每一行都有匹配的行时才会有效 - 如果没有special price
值,则只有空字段。