加入where和contains子句

时间:2015-07-01 06:00:08

标签: mysql sql

我无法编写一个sql查询,我需要连接两个表并获得两者的公共值。

这样的事,

select control_id from ProjectImage
where group_id ="20"
Join
(select images from coupon where coupon_name is "test" and images contains control_id of projectImage)

images是一个由逗号分隔的contol_id列表。

所以最后我只想要优惠券表格图片栏中的那些control ids

ProjectImage table ---- 
         image_id   bigint(20)  
    control_id  varchar(255)
    name    varchar(255)
    project_id  bigint(20)      
    group_id    bigint(20)

Coupon table:
    id  bigint(20)  
    image   varchar(1250)   
    name    varchar(255)    
    status  int(11)     
    wafer_id    bigint(20)

2 个答案:

答案 0 :(得分:0)

您可以在某些键上加入表格,例如主键,或者您可以使用类似

的内容
select control_id from ProjectImage where group_id ="20" and
control_id contains(select images from coupon where coupon_name is
"test" and images contains control_id)

答案 1 :(得分:0)

如果我的问题正确,您的查询应该看起来像这样

SELECT ProjectImage.control_id, coupon.images
FROM ProjectImage
JOIN coupon ON ProjectImage.control_id = coupon.control_id
WHERE ProjectImage.group_id ="20"
    AND coupon.coupon_name = 'test'

如果它不起作用,请向我们提供ProjectImage和Coupon的表格结构。

修改 使用提供的结构,您可以按照this thread并将列图像拆分为单独的行,然后使用临时连接,例如在临时表上