我有如下两张桌子;

mysql - 如何执行两个表的MySQL JOIN操作?我有一个查询,这是不正确的-LMLPHP

4c4fedf7    OMoy3Hoa
4c4fedf7    yiWDGB4D
broe4AMb    A9rLRawV
broe4AMb    mi9rLmZW
nhrtK9ce    yEsBoYLj
rEEtK9gt    A9rLRawV
rEEtK9gt    mi9rLmZW
rEEtK9Hh    A9rLRawV
rEEtK9Hh    msBWz8CQ

塔布莱
mysql - 如何执行两个表的MySQL JOIN操作?我有一个查询,这是不正确的-LMLPHP
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中,我有prodidtagid。它是一个复合主键。prodid充当外键,指向tableB。在表B中,我有prodformlink。表a的prodid指向表b的link。我想要的是,如果我把tablea的tagid作为数组之类的输入,比如,A9rLRawV,mi9rLmZW,我想要输出为;
OBqSU9pm
UvYOMvLe
Bhc5y629

这是因为,我想要prod,它在表a中的对应条目(prodid)中同时有A9rLRawVmi9rLmZW
我有一个疑问像;
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。

最佳答案

你在你的表格中漏掉了一个条目:
mysql - 如何执行两个表的MySQL JOIN操作?我有一个查询,这是不正确的-LMLPHP
所以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/

10-15 01:47