MySQL:如何从2个不同的表中得到1个WHERE IN CLAUSE

时间:2017-07-04 11:26:38

标签: php mysql

我有2个具有不同内容的表,并且无法连接表,因为没有公共标识符,但每个表都是1列,具有相同的内容。我需要从这两个列中提取内容,并希望从每个相同的记录中获取ID。以下查询提取我已经知道/拥有的内容,但是我没有从WHERE IN表中获取ID。

查询

SELECT pd.products_id, pd.products_short_description 
FROM products_description pd
WHERE pd.products_short_description IN (SELECT m.manufacturers_ean FROM manufacturers m)

结果

ID | products_short_description
-------------------------------
2  | BMW

这就是我需要的:

ID | products_short_description | ID | manufacturers_ean
--------------------------------------------------------
2  | BMW                        | 285| BMW

4 个答案:

答案 0 :(得分:2)

SELECT pd.products_id, pd.products_short_description, m.manufacturers_id, m.manufacturers_ean
FROM products_description pd INNER JOIN manufacturers m ON pd.products_short_description = m.manufacturers_ean;

答案 1 :(得分:0)

在这种情况下你怎么做内部连接可以做什么,所以你也可以从manufacturer_ean中选择两列

SELECT pd.products_id, pd.products_short_description, m.ID m.manufacturers_ean
FROM products_description pd
INNER JOIN manufacturers m on m.manufacturers_ean  = pd.products_short_description 

答案 2 :(得分:0)

查询将是:

 SELECT pd.products_id, pd.products_short_description, m.ID, m.manufacturers_ean
    FROM products_description pd,manufacturers m 
    WHERE m.manufacturers_ean = pd.products_short_description

答案 3 :(得分:0)

回答所有人:完美!有用!我把它标记为已解决的地方?