我是mysql的新手.这是我的db表的结构.*如何加入所有三个表来提供看起来像第四个表的结果?
表产品
id name category user_id
1 abc 2 1
2 syz 3 1
Run Code Online (Sandbox Code Playgroud)
表类别
id name
1 aaa
2 bbb
3 ccc
Run Code Online (Sandbox Code Playgroud)
表product_image
id image product_id
1 abc.jpg 1
2 xyz.jpg 1
Run Code Online (Sandbox Code Playgroud)
第四个结果看起来像
id name category_name image
1 abc aaa xyz.jpg
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.我试过但是没有得到正确的结果.
SELECT product. * , categories.name AS cat_name, product_image.image AS product_image
FROM `product`
INNER JOIN categories ON categories.id = product.category and `user_id`='1'
INNER JOIN `product_image` ON product_image.product_id = product.id
ORDER BY rand( )
LIMIT 1
Run Code Online (Sandbox Code Playgroud)
编辑部分
我们需要一个来自product_image的图像,该图像根据product_id与多个图像相关联
试试这个吧
SELECT p.id, p.name , c.name as category_name, i.image FROM Product AS p
INNER JOIN Categories as c
ON c.id=p.category LEFT JOIN
(SELECT image, product_id FROM product_image ORDER BY RAND( ) LIMIT 1 ) AS i ON i.product_id=p.id WHERE p.id=1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
208 次 |
| 最近记录: |