我无法将3张桌子连在一起。我有一个SELECT
适用于两个表,这是我想看到的主要数据。我还想将税率和税额添加到所选的单位。它们存储在不同的表中,因为在我的情况下单位可以有多个比率。以下是有效的查询:
SELECT u.unit_name from units u
LEFT JOIN reservations r ON r.unit = u.id
AND r.arrival <= 2013-10-11
AND r.departure >= 2013-10-01
WHERE r.unit IS NULL
我试图做的那个不是:
SELECT u.unit_name, ur.unit, ur.rate, ur.tax
FROM units u
LEFT JOIN reservations r
INNER JOIN unit_rates ur
ON r.unit = u.id
ON ur.unit = u.id
AND r.arrival <= 2013-10-11
AND r.departure >= 2013-10-01
WHERE r.unit IS NULL
AND ur.active = TRUE
HERE是SQLfiddle:http://sqlfiddle.com/#!2/b303ad
答案 0 :(得分:2)
SELECT u.unit_name, ur.unit, ur.rate, ur.tax
FROM units u
LEFT JOIN reservations r ON r.unit = u.id
AND r.arrival <= 2013-10-11
AND r.departure >= 2013-10-01
JOIN unit_rates ur ON ur.unit = u.id
WHERE r.unit IS NULL
每次加入后置ON条件。
答案 1 :(得分:0)
只需在ON中使用AND
:
SELECT u.unit_name, ur.unit, ur.rate, ur.tax
FROM units u
LEFT JOIN reservations r
INNER JOIN unit_rates ur
/* Another table */
ON r.unit = u.id
AND ur.unit = u.id
AND r.arrival <= 2013-10-11
AND r.departure >= 2013-10-01
WHERE r.unit IS NULL AND ur.active = TRUE