我很难把三张桌子连在一起。我有一个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
这是SQLfiddle:http://sqlfiddle.com/#!2/b303ad
最佳答案
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
在每次连接后设置条件。
SQL fiddle
关于mysql - 左联接3张 table ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19690522/