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


How to select second table in a query?

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

$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");

谢谢。

您应该查看类似的内容(注意,我现在无法测试它,这只是一个指南):

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

请阅读文档:Here

听起来像是在问如何通过使用单个查询来查询和组合来自两个表的结果。这可以很容易地在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,并且在表上有适当的索引。此外,在您的特定示例中,您可能至少在一个地方复制了客户名称;虽然有些应用程序需要这样做,但您可能还需要考虑规范化—但这是另一个主题。