我已经使用这个网站多年了,这是我第一次在这里问问题,所以现在有点害怕:d
我的问题是,我有两张table。表a有三列,表b有五列。所以现在的设置是这样的:
table_a
| r_id | foo | bar |
+------+-------+-----+
| 1 | dude | 5 |
+------+-------+-----+
| 2 | homie | 6 |
+------+-------+-----+
| 3 | bro | 7 |
+------+-------+-----+
table_b
| id | ada | rea | lm | cor |
+----+-------+-----+------+------+
| 5 | ching | ink | jk | 32.4 |
+----+-------+-----+------+------+
| 1 | momo | pal | lmao | 95.5 |
+----+-------+-----+------+------+
| 6 | mama | pen | lol | 26.9 |
+----+-------+-----+------+------+
| 4 | chac | pin | fun | 91.2 |
+----+-------+-----+------+------+
| 7 | chim | lap | funk | 82.4 |
+----+-------+-----+------+------+
| 9 | cho | kil | fin | 38.1 |
+----+-------+-----+------+------+
现在我要做的是从表a中获取所有数据,然后只获取 lm
从表b。我从表a得到的所有数据如下: SELECT r_id, foo, bar from table_a
我需要用我的身份证 bar
要获取的列 lm
从表b。那么,有没有一种方法可以传递一个数组,以便仅基于数组中的id获取数据呢?如果没有,那么最有效的方法是什么?
我期望的结果是 jk, lol, funk
. 谢谢你的帮助,谢谢!
6条答案
按热度按时间uurv41yg1#
为此,您可以尝试使用sql的where特性。
或者也可以使用join来实现这一点
9q78igpj2#
为什么不加入?
您可以使用group\u concat()函数,这样您就可以
jk, lol, funk
否则你会得到3行每一个lm
价值观,oiopk7p53#
尝试
inner join
```SELECT a.r_id, a.foo, a.bar, b.lm from table_a as a inner join table_b as b on b.id=a.bar
yizd12fk4#
你可以用
INNER JOIN
```SELECT tale_a.r_id, tale_a.foo, tale_a.bar ,table_b.lm
FROM tale_a
INNER JOIN table_b
ON tale_a.bar=table_b.id
| r_id | foo | bar | lm |
+------+-------+-----+-----+
| 1 | dude | 5 | jk |
+------+-------+-----+-----+
| 2 | homie | 6 |lol |
+------+-------+-----+-----+
| 3 | bro | 7 |funk |
+------+-------+-----+-----+
slmsl1lt5#
我假设你有一个ID数组。因此,首先用逗号分隔ID数组,如下所示:
然后用这个
ids_str
在IN
os mysql查询如下:ukqbszuj6#
您应该考虑在一个查询中使用联接将两个表链接在一起。。。