4c4fedf7 OMoy3Hoa
4c4fedf7 yiWDGB4D
broe4AMb A9rLRawV
broe4AMb mi9rLmZW
nhrtK9ce yEsBoYLj
rEEtK9gt A9rLRawV
rEEtK9gt mi9rLmZW
rEEtK9Hh A9rLRawV
rEEtK9Hh msBWz8CQ
塔布莱
mr23wsSW formb 4c4fedf7
OBqSU9pm forma broe4AMb
UvYOMvLe formc broe4AMb
Bhc5yfr4 forma nhrtK9ce
R9vZJ5Kd formb nhrtK9ce
Bhc5y629 forma rEEtK9gt
Bhc5y488 forma rEEtK9Hh
Bhc5y489 formb rEEtK9Hh
在表A中,我有
prodid
和tagid
。它是一个复合主键。prodid
充当外键,指向tableB。在表B中,我有prod
、form
和link
。表a的prodid
指向表b的link
。我想要的是,如果我把tablea的tagid
作为数组之类的输入,比如,A9rLRawV,mi9rLmZW
,我想要输出为;OBqSU9pm
UvYOMvLe
Bhc5y629
这是因为,我想要prod,它在表a中的对应条目(prodid)中同时有
A9rLRawV
和mi9rLmZW
。我有一个疑问像;
SELECT b.prod AS links
FROM tablea a
INNER JOIN tableb b ON a.prodid = b.link
WHERE a.tagid IN ('A9rLRawV','mi9rLmZW')
GROUP BY b.prod
但是,它返回的结果类似于;
OBqSU9pm
Bhc5y629
Bhc5y488
我该怎么解决?我使用php+mysql。
最佳答案
你在你的表格中漏掉了一个条目:
所以prodid reetk9hh对应的条目也会出现。
但这应该是你预期的结果:
SELECT b.prod AS links
FROM tablea a
RIGHT JOIN tableb b ON a.prodid = b.link
WHERE a.tagid IN ('A9rLRawV','mi9rLmZW')
GROUP BY b.prod
输出:
| prod |
|----------|
| BHc5y488 |
| BHc5y489 |
| BHc5y629 |
| OBqSU9pm |
| UvYOMvLe |
见:http://sqlfiddle.com/#!9/6e875/2
关于mysql - 如何执行两个表的MySQL JOIN操作?我有一个查询,这是不正确的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34172082/