如何在条件上联接两个表的列?

时间:2019-04-11 13:48:04

标签: mysql sql

我有两个表:

表A:

id | key | price

表B:

id | key | min | max

我想要表 B 中的行,其中 min max 列包含表A中的 price 列。换句话说,价格大于最小值而小于最大值
我使用了这段代码,但没有返回真实结果:

SELECT * FROM B INNER JOIN A ON A.key=B.key where A.price > B.min AND A.price < B.max;

3 个答案:

答案 0 :(得分:1)

使用此mysql查询获取结果,并确保将price列设置为INT或FLOAT。

SELECT 
    table1.id,table1.key,table1.price,
    table2.min,table2.max
FROM
    table1
        INNER JOIN
    table2 ON table1.key = table2.key
        AND (table1.price > table2.min
        AND table1.price < table2.max);

答案 1 :(得分:0)

尝试

  

选择*从B左连接A到B.key = A.key,其中A.price> B.min和A.price

左联接将返回左表中的值。在这里是B

此处显示为https://www.w3schools.com/sql/sql_ref_join.asp

答案 2 :(得分:0)

好的,我发现了问题。
价格列的类型为Varchar。我将其更改为float,现在查询返回了真实结果。