在匹配另一列时,根据结果行的列获取最终行

时间:2015-11-03 07:14:42

标签: mysql sql join

示例
表1
id table3_fk

1  -101
2 -103
3 -104
4 -101 5 -105

------------------------

表2

id(与表1相同)table4_fk
1 -1001
2 -1003
3 -1001
4 -1002
5 -1001
*****************************

如果我根据id连接表1和表2,那么结果行将是一些数字,但是我希望在我第一次加入后基于table4_fk得到表2中的所有结果行
让我们说:

从表1中选择*作为t1连接t1.id = t2.id上的表2 t2 其中t1.table3_fk = -101
结果将是:

ID table4_fk table3_fk
1 -1001 -101
4 -1002 -101
查询:需要-------------------

----------------------------------------------- -
需要的结果是:(匹配后查看table4_fk列)

ID table4_fk table3_fk
1 -1001 -101
3 -1001 -104
4 -1002 -101
5 -1001 -105
-------------------------------------------------- ------

请提出你的ides interms任何sql查询知识
谢谢,
Ĵ

2 个答案:

答案 0 :(得分:0)

 select * from Table1 as t1  join Table2 t2 on t1.id = t2.id 
where t1.table3_fk <> -103

试试此代码

答案 1 :(得分:-1)

此查询应按预期工作:

SELECT t1.id, t2.table4_fk, t1.table3_fk 
FROM Table1 AS t1  
     JOIN Table2 t2 ON t1.id = t2.id 
WHERE t1.table3_fk <> '-103'

输出:

id table4_fk table3_fk

1 -1001 -101

3 -1001 -104

4 -1002 -101

5 -1001 -105