好吧,让我解释一下我的问题:
我得到了这些表格:
我希望加入以列出产品的所有照片和视频......我可以用2种方式来思考:
首先:
select b.photo_url,c.video_url from product a left join photo b using(product_id) left join video c using(product_id) where a.product_id=X;
或做两个查询,如:
select b.photo_url from product a left join photo b using(product_id) where a.product_id=X;
select c.video_url from product a left join video c using(product_id) where a.product_id=X;
那么第一个查询看起来更好但是如果我有2个视频和3个这个产品的照片有问题我需要用php解析它不要重复记录;无论如何,我想知道哪些查询更好。
答案 0 :(得分:1)
除了普通产品之外,我没有看到特定视频和特定照片之间的任何关联。你说的可能有多个。那么为什么不联合呢?
SELECT photo_url FROM photo WHERE product_id=X
UNION
SELECT video_url FROM video WHERE product_id=X;
如果您担心区分网址类型,请添加一列:
SELECT photo_url AS url, 'photo' AS url_type FROM photo WHERE product_id=X
UNION
SELECT video_url AS url, 'video' AS url_type FROM video WHERE product_id=X;