【问题标题】:I want fetch data from second table if not present in first table如果第一个表中不存在,我想从第二个表中获取数据
【发布时间】:2016-09-07 07:22:54
【问题描述】:

我有一个 products 表,其中有一个 price(General Price) 列。我有第二个 product_price 表,其中包含 product_id、company_id 和 price(公司特定产品价格)。

这个想法是为不同的公司设置和显示不同的产品价格,如果在product_price表中没有为所选公司设置价格,它应该从产品表中获取一般价格。

我尝试使用左连接。但是,没有得到想要的结果

SELECT 
    products.id, products.price, product_price.price
FROM
    products
        LEFT JOIN
    product_price ON products.id = product_price.product_id
        AND company_id = $id

【问题讨论】:

  • 如果您使用 eloquent 我认为与 if statment 一起使用会更容易。如果从第一个结果返回的值为 null,则将执行另一个(另一个 if $thing ==null)将获取数据从第二张桌子,我不知道这是否正是你想要的,但这就是我解决此类问题的方式
  • 我想减少这里的处理时间,因为会有大量的没有。的产品。我更喜欢创建一个视图并从那里访问数据。

标签: php mysql laravel magento


【解决方案1】:
SELECT 
    products.id, 
    COALESCE(product_price.price,products.price)
FROM
    products
LEFT JOIN product_price 
ON products.id = product_price.product_id
   AND company_id = $id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 2018-07-13
    • 1970-01-01
    • 2022-10-03
    • 2017-03-29
    相关资源
    最近更新 更多