为什么 SELECT x from (SELECT ...)?直接进入内部:
SELECT model, price
FROM product
LEFT JOIN printer, laptop, pc
ON product.model = printer.model = laptop.model = pc.model
所以显然这仍然行不通,因为存在一些语法错误。您需要做的是多个连接:
SELECT model, price
FROM product
LEFT JOIN printer ON product.model = printer.model
LEFT JOIN laptop ON product.model = laptop.model
LEFT JOIN pc ON product.model = pc.model
现在,这是一个有效的查询,但我怀疑在您的数据中它不会起作用,因为您在打印机、笔记本电脑和个人电脑中都有一个价格(所以它会混淆您所说的“价格”是指哪一个)。可能有更好的方法来做到这一点,但你可以这样做:
SELECT model, COALESCE(printer.price, laptop.price, pc.price)
FROM product
LEFT JOIN printer ON product.model = printer.model
LEFT JOIN laptop ON product.model = laptop.model
LEFT JOIN pc ON product.model = pc.model
coalesce所做的是返回第一个非 NULL 参数(因此,如果 printer.price 为 null 而laptop.price 不是,它将返回laptop.price)。