从另一个表中选择值

时间:2011-08-19 21:41:29

标签: mysql sql

所以我有两个单独的表。在第一个表格中,有一堆广告组具有ID。在第二个表格中有一堆广告,其中的列包含每个广告的ad_group ID。 ad_group_id只是广告组表中广告组的ID。因此,我正在尝试选择ad_group_id分别为103,104,105,107,117117和120的所有广告。

所以我尝试了以下查询。

SELECT * FROM ads WHERE ad_group_id LIKE '%103%' OR ad_group_id LIKE '%104%'
OR ad_group_id LIKE '%105%' OR ad_group_id LIKE '%107%' OR ad_group_id LIKE '%117%' OR ad_group_id LIKE '%118%' OR ad_group_id LIKE '%120%';

以前的查询工作也是如此?是

我的查询效率如何? NO!

我想知道如何以更有效的方式运行以前的MySQL查询。

编辑:

AD GROUP - table 1
id    name
100   Tony
100   David
103   James
104   Ann
105   Jon
150   Sara

AD - table 2
keyword   ad_group_id
that        103
one         100
is          105
special     104
no          100
please      103

所以我最终应该:

that        103
is          105
special     104
please      103

希望这是有道理的。

编辑2:

以下代码给出了相同的结果并且更短,但是当我需要选择更多值时,我无法想象这样做。

SELECT * FROM ads WHERE ad_group_id IN (103,104,105,107,117,118,120);

1 个答案:

答案 0 :(得分:1)

据我了解,您存储ad_group_id,如id1,id2,id3等。 如果是,则此关系是多对多的,并且更有效地创建附加表 2列ad_id,ad_group_id。但这取决于您的数据量。