如何在查询中选择第二个表?

时间:2011-04-09 23:45:28

标签: php mysql

我使用它来获取自动完成功能的客户名称。

$query = $db->query("SELECT orderr_customer_name FROM orderr WHERE orderr_customer_name LIKE '$queryString%' GROUP by orderr_customer_name LIMIT 10");
                if($query) {
                    while ($result = $query ->fetch_object()) {

                        echo '<li onClick="fill(\''.$result->orderr_customer_name.'\');">'.$result->orderr_customer_name.'</li>';

我如何选择另一张桌子?这是我想要使用的表格

("SELECT customer_name FROM customer WHERE customer_name LIKE '$queryString%' GROUP by customer_name LIMIT 10");

非常感谢。

2 个答案:

答案 0 :(得分:0)

你应该研究类似的东西(注意我现在不能测试,这只是一个指导原则):

SELECT orderr.orderr_customer_name, customer.customer_name 
FROM customer INNER JOIN orderr_customer_name ON orderr.orderr_customer_name = customer.customer_name 
WHERE customer_name LIKE '$queryString%' GROUP by customer_name LIMIT 1

Pleasy阅读文档:Here

答案 1 :(得分:0)

听起来您正在询问如何通过使用单个查询来查询和组合来自两个表的结果。这可以通过MySQL中的UNION轻松完成。

(SELECT orderr_customer_name AS customer_name FROM orderr WHERE orderr_customer_name LIKE '$queryString%')
UNION
(SELECT customer_name FROM customer WHERE customer_name LIKE '$queryString%')
ORDER BY customer_name LIMIT 10

不要忘记确保逃脱/清理$queryString,并确保表格上有适当的索引。此外,在您的具体示例中,您可能会在至少一个位置重复客户名称;虽然有些应用程序需要这样做,但您可能还需要考虑规范化 - 但这是另一个主题。