如何加入SQL表

时间:2016-01-31 03:09:44

标签: mysql sql join

我似乎无法弄清楚如何连接这两个表来执行并通过单个查询返回我在一个有效负载中所需的全部内容。非常感谢任何帮助。

如果我放置一个,你会看到一切都与查询的前半部分一起工作;在“IN”之后的右括号末尾。

然而,当我用另一个表propA_Photos加入这个表时,MySQL抛出并出错。我只希望在一个查询中将propA_Photos.photo列与上面的内容联系起来。

我做错了什么?

SELECT propA.list_id, propA.list_key, propA.list_value
FROM propA
where list_id = '20141118214124325535000000'
    AND list_key IN ('LIST_1', 'LIST_22', 'LIST_33', 'LIST_31', 'LIST_34', 'LIST_35', 'LIST_36', 'LIST_37', 'LIST_39', 'LIST_40', 'LIST_43', 'LIST_41', 'LIST_46', 'LIST_47') 
INNER JOIN propA_Photos.photo;

2 个答案:

答案 0 :(得分:0)

您错过了一个加入条款,我不确定您的数据库是否合适。

SELECT 
    propA.list_id, propA.list_key, propA.list_value
FROM propA
INNER JOIN propA_Photos.photo
        ON propA_Photos.<<Attr1>> = propA.<<Some_Attribute>>
WHERE list_id = '20141118214124325535000000' 
  AND list_key IN (.. lot of stuff... ) 

答案 1 :(得分:0)

连接表时,您需要遵循特定的语法和操作符顺序。

where子句应遵循join子句,您需要指定使用on子句确定表的连接方式的条件。

你可能想要这样的东西:

SELECT propA.list_id, propA.list_key, propA.list_value 
FROM propA 
INNER JOIN propA_Photos.photo ON propA.some_column = propA_Photos.some_column
-- the join should likely by using primary key = foreign key
WHERE list_id = '20141118214124325535000000' 
  AND list_key IN (
    'LIST_1',  'LIST_22', 'LIST_33', 'LIST_31', 
    'LIST_34', 'LIST_35', 'LIST_36', 'LIST_37', 
    'LIST_39', 'LIST_40', 'LIST_43', 'LIST_41', 
    'LIST_46', 'LIST_47'
    );