SELECT
tb1.booking_ref, tb1.investor, tb2.cost, tb3.product
FROM
tb1, tb3 LEFT JOIN tb2
ON
tb1.booking_ref = tb2.booking_ref
AND
tb1.investor = tb2.investor
AND
tb1.investor = '12345'
WHERE
tb1.location = tb3.location
上面的查询错误是因为对tb3的引用 - 没有它们就很好。
有没有人知道为什么?
答案 0 :(得分:7)
SELECT
tb1.booking_ref, tb1.investor, tb2.cost, tb3.product
FROM
tb1
inner join tb3
on tb1.location = tb3.location
left join tb2
on tb1.booking_ref = tb2.booking_ref
and tb1.investor = tb2.investor
WHERE tb1.investor = '12345'
答案 1 :(得分:0)
而不是在WHERE
子句中,将tb1.location = tb3.location
添加到ON
/ AND
子句中。
在更新问题之前回答:
是的,它会
您在哪里说明了表tb3
与tb1
,tb2
之间的关系?对于连接,您需要在这些表中的某些列之间建立关系。
HTH!
答案 2 :(得分:0)
这可能会对您有所帮助:
SELECT t1.booking_ref, t1.investor, t.cost, t.product
FROM tb1 t1
CROSS APPLY(
SELECT t2.cost, t3.product
FROM tb3 t3
LEFT JOIN tb2 t2 ON (t1.booking_ref = t2.booking_ref
AND t1.investor = t2.investor
AND t1.investor = '12345')
) AS t
PS: - 至少你需要SQL Server 2005。