SELECT `id`
FROM (`videos`)
WHERE `name` LIKE '%Dragon Ball Z (U.S.)%'
和第二
SELECT `vid_id` as id
FROM (`other_names`)
WHERE `name` LIKE '%Dragon Ball Z (U.S.)%'
GROUP BY `vid_id`
我想要得到的是由LIKE
唯一ID列表。
SELECT `id`
FROM (`videos`)
WHERE `name` LIKE '%Dragon Ball Z (U.S.)%'
和第二
SELECT `vid_id` as id
FROM (`other_names`)
WHERE `name` LIKE '%Dragon Ball Z (U.S.)%'
GROUP BY `vid_id`
我想要得到的是由LIKE
唯一ID列表。
用'UNION'替换'and second'。 :)
SELECT `id`
FROM (`videos`)
WHERE `name` LIKE '%Dragon Ball Z (U.S.)%'
UNION
SELECT `vid_id` as id
FROM (`other_names`)
WHERE `name` LIKE '%Dragon Ball Z (U.S.)%'
UNION
(相对于UNION ALL
)已经只返回独特的物品,这样你就不会需要GROUP BY
或SELECT DISTINCT
。如果您认为它更清晰,您可以编写UNION DISTINCT
,但可以省略它,因为它是默认行为UNION
。
@GelozTrol Union不会从查询中删除重复项,以便查询1返回重复项,而查询2不同,并且如果将两者结合,则将删除重叠的任何查询1和查询2,但查询1中的重复项将保留。纠正我,如果我错了。我认为这就是UNION DISTINCT vs UNION的原因 – Churk 2012-02-27 16:37:01
@Churk你有没有试过?正如我所描述的,“UNION”和“UNION DISTINCT”没有区别。只有当你不想删除重复时,你需要使用'UNION ALL',但@aTei明确要求唯一的ID。看看这里:http://dev.mysql.com/doc/refman/5.0/en/union.html – GolezTrol 2012-02-27 16:40:03
我想我错了,谢谢参考。 – Churk 2012-02-27 16:43:18
两张表的定义?他们是否与外键有关? – vulkanino 2012-02-27 16:28:00