选择多个结果

时间:2013-10-04 15:01:48

标签: php mysql

我正在尝试根据另一个表上的多个结果从一个表返回结果。这是设置:

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将其分解为循环,但我宁愿使用单个查询来提高效率。

3 个答案:

答案 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