0
 tbl_product:                             
+------+------+------------+-------+     
| id   | code | name  |brand|origin|
+------+------+------------+-------+
|    1 | 1001 | apple | X   | a    |
|    2 | 1002 | mango | V   | b    |
|    3 | 1003 | banana| Z   | a    |
+------+------+------------+-------+
tbl_product_price:
+------+------+------+
| id   | code | price|
+------+------+------+
|    1 | 1001 |  250 |
|    2 | 1001 |  220 | 
|    3 | 1002 |  175 |
|    4 | 1002 |  180 |
|    5 | 1003 |  170 |
|    6 | 1003 |  190 |  
+------+------+------+

我有一个搜索框,如果我选择任何专业人士

SELECT a.id, a.pro_code, a.pro_unit, MIN(b.pro_price) FROM tab_product a INNER JOIN tab_product_price b WHERE pro_code like('" .$search . "%') ORDER BY pro_code LIMIT 5" 但没有 pro_code 显示在搜索框中。

请这个代码是好的!

4

4 回答 4

5

首先要做的就是把这JOIN两张表自Price产品所属tbl_product_price。加入后,你需要使用聚合函数MIN()和aGROUP BY来获得每个组中的最低价格。

SELECT  a.id, a.code, a.name, MIN(b.Price) minimumPrice
FROM    tbl_product a
        INNER JOIN tbl_product_price b
            ON a.code = b.code
GROUP   BY a.id, a.code, a.name

要进一步了解有关联接的更多信息,请访问以下链接:

输出

╔════╦══════╦════════╦══════════════╗
║ ID ║ CODE ║  NAME  ║ MINIMUMPRICE ║
╠════╬══════╬════════╬══════════════╣
║  1 ║ 1001 ║ apple  ║          220 ║
║  2 ║ 1002 ║ mango  ║          175 ║
║  3 ║ 1003 ║ banana ║          170 ║
╚════╩══════╩════════╩══════════════╝
于 2013-05-21T05:59:33.373 回答
1

查看 MySQL和JOIN函数:MIN()IFNULL()

SELECT
    `id`, `a`.`code`, `name`, IFNULL(MIN(`price`), 'no min price') as `minimum_price`
FROM
    `tbl_product` `a` LEFT JOIN `tbl_product_price` `b` ON `a`.`code` = `b`.`code`
GROUP BY
    `id`, `a`.`code`, `name`;

如果您的产品没有指定价格,这也适用。

于 2013-05-21T05:59:27.803 回答
0
SELECT  tbl_product.id, tbl_product.code, tbl_product.name, MIN(tbl_product_price.Price) minimumPrice
FROM    tbl_product,tbl_product_price
        Where tbl_product.code = tbl_product_price.code
GROUP BY  tbl_product.code

SQL 小提琴

于 2013-05-21T06:24:55.497 回答
0

我有点困惑,以前的受访者都没有想过为这个问题提供“标准”答案,但也许那是因为手册中涵盖了它。此查询的“不相关子查询”版本提供了更强大的答案,并且在性能方面将胜过迄今为止提供的那些。

于 2013-05-21T06:48:36.417 回答