MySQL内部联接,其中列=(可能的值列表)

MySQL内部联接,其中列=(可能的值列表),mysql,Mysql,找不到这个问题的答案。基本上我有两张这样的桌子: 表1: id name 1 john 2 bill 3 tim 表2: prodid value 1 blar 2 test 3 meh 我想执行一个联接,根据我为table1.name指定的值列表返回table2.value列 因此,我有一个价值观列表(john,tim) 我认为这会奏效: select table2.value, table1.name from table2 i

找不到这个问题的答案。基本上我有两张这样的桌子:

表1:

id  name
 1   john
 2   bill
 3   tim
表2:

prodid value
  1     blar
  2     test
  3      meh
我想执行一个联接,根据我为table1.name指定的值列表返回table2.value列

因此,我有一个价值观列表(john,tim)

我认为这会奏效:

select table2.value, table1.name 
from table2
inner JOIN
table1 on 
table2.prodid in (select id from table where name in ('john', 'tim'))
但这会返回大量结果,并返回不在我的姓名列表中的列

我相信这是很愚蠢的,但有没有任何指向我哪里出了问题的指示


谢谢

带有筛选条件的简单联接应执行以下操作:

select
  t1.name,
  t2.value
from table2 t2
join table1 t1 on t1.id = t2.prodid
where t1.name in ('john', 'tim')

您的预期输出是什么?我希望看到表2中的值“blar”和“meh”,旁边有“john”和“tim”。非常感谢您的快速响应和解决方案!