SQL 中的 JOIN ON 只能指定一个匹配条件,若需匹配多个条件,可以使用 WHERE 子句。替代方法包括:子查询UNION ALLCASE 表达式EXISTS
SQL 中的 JOIN ON 条件
SQL 中的 JOIN ON 语句可以连接两个或多个表,并使用一个或多个条件来匹配行。但是,JOIN ON 只能指定一个条件。
如果您需要使用多个条件来匹配行,可以使用 WHERE 子句:
上面的查询使用 JOIN ON 来匹配
和
中具有相同 ID 的行,然后使用 WHERE 子句来进一步筛选行,仅选择具有相同名称的行。
以下是一些使用 JOIN ON 和 WHERE 子句匹配多个条件的替代方法:
使用子查询:
将其中一个表的条件放入子查询中,然后使用 JOIN ON 条件连接主表和子查询。
使用 UNION ALL:
将两个或更多个查询的結果合併在一起,然后使用 JOIN ON 条件连接合併後的表。
使用 CASE 表达式:
在 JOIN ON 条件中使用 CASE 表达式来评估多个条件。
使用 EXISTS:
使用 EXISTS 子查询来检查是否存在满足某个条件的行。
根据具体情况,选择最佳方法可能会有所不同。
SELECT *
FROM table1
JOIN table2 ON table1.id = table2.id
WHERE table1.name = table2.name;table1table2