Sql 在条件“>”下完全加入使用我该怎么做?

Sql 在条件“>”下完全加入使用我该怎么做?,sql,Sql,有两个表,我想从一个表中获取大于另一个表的数据,并显示不大于另一个表的所有数据 table A | code | value | | -- | -- | | aa | 10| | bb | 20| table B | code | value | | -- | -- | | aa | 30 | | bb | 40 | 选择 聚结A代码,b代码作为代码, a、 价值为va, b、 值为vb 从A 完全连接B 关于a.code=b.code a.value>b.value 实际的sql:ope

有两个表,我想从一个表中获取大于另一个表的数据,并显示不大于另一个表的所有数据

table A
| code | value |
| -- | -- |
| aa | 10|
| bb | 20|


table B
| code | value |
| -- | -- |
| aa | 30 |
| bb | 40 |
选择 聚结A代码,b代码作为代码, a、 价值为va, b、 值为vb 从A 完全连接B 关于a.code=b.code a.value>b.value 实际的sql:operation\u time和lock\u time类型是带时区的时间戳

 SELECT COALESCE(b.m_product_id, a.m_product_id) AS m_product_id,
            COALESCE(a.storage_location_id, b.storage_location_id) AS storage_location_id,
            a.qty,
            a.lock_time,
            b.operation_time,
            b.category,
            b.product_num
           FROM lock_storage_location_record a
             FULL JOIN out_in_storage_detail b ON a.storage_location_id = b.storage_location_id AND a.m_product_id = b.m_product_id AND b.operation_time > a.lock_time
          WHERE b.deleted = false and COALESCE(b.m_product_id, a.m_product_id) = 3309
结果:

| code | va | vb |
| -- | -- | --|
| aa | 10 | null |
| bb | 20 | null |
预期:

| code | va   | vb   |
| ---- | ---- | ---- |
| aa   | 10   | null |
| bb   | 20   | null |
| aa   | null | 30   |
| bb   | null | 40   |

我使用相同的完全外部联接sql得到了预期的结果

结果:
>与预期答案有什么关系?@drum我重新编辑了我的问题,我只想得到表a的值大于表b的值。如果它们都不匹配,您仍然需要它们返回不匹配的内容。您的解释没有意义。结果如何不正确?@drum表A与显示的内容不匹配,但表B与未显示的内容不匹配完全联接是完全外部联接。我之前简化了此问题,请帮助我查看实际执行的SQL,此结果与我描述的问题相同
SELECT 
  COALESCE(a.code, b.code) AS code,
  a.value as va,
  b.value as vb
FROM A a
FULL OUTER JOIN B b ON a.code = b.code AND a.value> b.value
code | va | vb :--- | ---: | ---: aa | 10 | null bb | 20 | null aa | null | 30 bb | null | 40