我有两张桌子。一个是ps_product_lang
和ps_category_product
。 ps_category_product
中的数据就像这样
id_category id_product
2 1
2 2
2 3
2 4
2 5
2 6
2 7
3 1
3 2
3 3
3 4
3 5
3 6
3 7
4 1
4 2
5 1
7 2
8 3
8 4
8 5
8 6
8 7
9 3
10 4
ps_product_lang
的表格就像这样
id_product id_lang name
1 1 Faded Short Sleeves T-shirt
1 2 Faded Short Sleeves T-shirt
2 1 Blouse
2 2 Blouse
3 1 Printed Dress
3 2 Printed Dress
4 1 Printed Dress
4 2 Printed Dress
5 1 Printed Summer Dress
5 2 Printed Summer Dress
6 1 Printed Summer Dress
6 2 Printed Summer Dress
7 1 Printed Chiffon Dress
7 2 Printed Chiffon Dress
所以在这里我想从ps_product_lang获取id_product,名称,其中id_category是5,7,名称如' p%'。所以有人能告诉我什么是查询。任何帮助和建议都是非常值得的。
答案 0 :(得分:1)
正如@Gordon暗示的那样,你只需要在两个表之间加INNER JOIN
,并在where条件下限制产品类别和名称:
SELECT t1.id_product,
t1.name
FROM ps_product_lang t1
INNER JOIN
(
SELECT DISTINCT id_product
FROM ps_category_product
WHERE id_category IN (5, 7)
) t2
ON t1.id_product = t2.id_product
WHERE t1.name LIKE 'P%'
这是一个演示,它省略了WHERE
子句,以显示查询在实际返回数据时的行为:
答案 1 :(得分:0)
使用JOIN
从2个表中获取数据
SELECT p.id_product,name
FROM ps_product_lang p
JOIN ps_category_product c
ON p.id_product=c.id_product
WHERE id_category IN (5,7)
AND name LIKE 'p%'