我正在使用 joomla joomshopping 组件,现在我面临一个复杂的问题。我需要从数据库中选择处于 extra_field 条件范围内的产品,这是什么意思。
我们有两张 table
jshopping_产品
product_id | product_name | extra_field_1 | extra_field_2
1 | my_product | 1 | 2
2 | my_product2 | 1 | 3
3 | my_product3 | 4 | 3
额外字段值
id | field_id | name
1 | 1 | 100
2 | 2 | 200
3 | 2 | 300
4 | 1 | 150
我想为 extra_field_1 选择 100-120 范围内的所有产品,为 extra_field_2 选择 200-205 范围内的所有产品,因此结果应该是第一个产品
我尝试过的 sql 看起来像这样
$sql = mysql_query("SELECT a.* FROM jshopping_products a, jshopping_products_extra_field_values b WHERE (b.name >= 100 AND b.name <= 120 AND there is a problem ");
如何将这两个表配对?
已编辑********
$query = "
SELECT
".$prefix."jshopping_products.*
FROM
".$prefix."jshopping_products
JOIN ".$prefix."jshopping_products_extra_field_values field_2 ON ".$prefix."jshopping_products.extra_field_2 = field_2.id
JOIN ".$prefix."jshopping_products_extra_field_values field_7 ON ".$prefix."jshopping_products.extra_field_7 = field_7.id
JOIN ".$prefix."jshopping_products_extra_field_values field_8 ON ".$prefix."jshopping_products.extra_field_8 = field_8.id
JOIN ".$prefix."jshopping_products_extra_field_values field_9 ON ".$prefix."jshopping_products.extra_field_9 = field_9.id
JOIN ".$prefix."jshopping_products_extra_field_values field_10 ON ".$prefix."jshopping_products.extra_field_10 = field_10.id
JOIN ".$prefix."jshopping_products_extra_field_values field_11 ON ".$prefix."jshopping_products.extra_field_11 = field_11.id
JOIN ".$prefix."jshopping_products_extra_field_values field_12 ON ".$prefix."jshopping_products.extra_field_12 = field_12.id
JOIN ".$prefix."jshopping_products_extra_field_values field_13 ON ".$prefix."jshopping_products.extra_field_13 = field_13.id
WHERE
field_10.`name_cs-CZ` BETWEEN 0 and 999999999
";
感谢回复,无论如何我设法做到了这一点,它只给了我 1 个产品,而且我确信在 extra_field_10 中大约有 100 个值在 60-10000 范围内,有超过 200 个产品
最佳答案
SELECT distinct jshopping_products.*
FROM jshopping_products
JOIN extra_field_values field_1 ON jshopping_products.extra_field_1 = field_1.id
JOIN extra_field_values field_2 on jshopping_products.extra_field_2 = field_2.id
WHERE
field_1.name BETWEEN 100 AND 120 AND
field_2.name BETWEEN 200 AND 205
关于php - 在另一个表中按条件选择产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009613/