Mysql左连接查询返回值NULL

时间:2015-11-08 16:45:08

标签: mysql

我的查询:

for key,val in First.children.iteritems():
    if isinstance(val, tk.Toplevel):
        print("window: " + val.title())

#or to get a list of all titles
titles = map(lambda win:win.title() , filter(lambda w : isinstance(w, tk.Toplevel), First.children.itervalues()))
if title not in titles:
    #...

products_prd中的主键返回NULL。他们有价值观。而img.prd_id可能为NULL。

1 个答案:

答案 0 :(得分:1)

问题是您有名称冲突 - 例如,有两个名为prd_id的东西。您需要使用别名来重命名列:

SELECT prd.*, img.col1 as img_col1, img.col2 as img_col2
FROM products_prd prd LEFT OUTER JOIN 
     prd_images_img img 
    ON prd.prd_id = img.prd_id
ORDER BY prd.prd_datetime;

您不需要选择prd_id两次。

或者,您可以使用USING代替ON

SELECT *
FROM products_prd prd LEFT OUTER JOIN 
     prd_images_img img 
     USING (prd_id)
ORDER BY prd.prd_datetime;

这只返回USING子句中的列一次(尽管如果其他列在两个表中具有相同的名称,则可能会遇到问题。)