我正在尝试根据另一个表上的多个结果从一个表返回结果。这是设置:
Table A: "accounts"
id | fname | other_id
1 | test | 500
2 | test2 | 505
3 | test3 | 500
4 | test4 | 540
5 | test5 | 500
Table B: "transactions"
id | account_id |
1 | 1
2 | 4
3 | 2
4 | 1
5 | 3
6 | 2
我想要完成的是,返回所有id的来自其中account_id =表A中的id的事务WHERE other_id =某个值。
要手动写出来,它看起来像这样:
例如,如果other_id = 500。
1)从其他地方获取记录,其中other_id = 500(将是多个结果,在本例中为1,3和5)
2)从账户中获取记录,其中account_id = 1或account_id = 3或account_id = 5
我尝试了几个不同的子选择,但似乎无法想出我正在寻找的东西。
我当然可以使用PHP将其分解为循环,但我宁愿使用单个查询来提高效率。
答案 0 :(得分:1)
select t.id
from accounts as a
inner join transactions as t on a.id = t.account_id
where a.other_id=500
答案 1 :(得分:1)
不需要子选择,只需简单的连接。
select * from accounts a, transactions t where t.account_id=a.id and other_id=500
答案 2 :(得分:0)
如果我理解你,你想要这个。
SELECT b.id
FROM accounts AS a
LEFT JOIN transactions AS b ON b.account_id = a.id
WHERE other_id = 500