鉴于下表

mysql> describe customers;
+-------------+-------------+------+-----+---------+----------------+
| Field       | Type        | Null | Key | Default | Extra          |
+-------------+-------------+------+-----+---------+----------------+
| customer_id | int(11)     | NO   | PRI | NULL    | auto_increment |
| login       | varchar(16) | NO   |     | NULL    |                |
| password    | varchar(40) | NO   |     | NULL    |                |
| name        | varchar(32) | NO   | UNI | NULL    |                |
| address     | varchar(64) | NO   |     | NULL    |                |
| contact     | varchar(32) | NO   |     | NULL    |                |
+-------------+-------------+------+-----+---------+----------------+
6 rows in set (0.02 sec)

mysql> describe orders;
+-----------------+-------------+------+-----+-------------------+----------------+
| Field           | Type        | Null | Key | Default           | Extra          |
+-----------------+-------------+------+-----+-------------------+----------------+
| customer_id     | int(11)     | NO   | MUL | NULL              |                |
| order_id        | int(11)     | NO   | PRI | NULL              | auto_increment |
| order_timeStamp | timestamp   | NO   |     | CURRENT_TIMESTAMP |                |
| item            | varchar(16) | NO   |     | NULL              |                |
| price           | double      | NO   |     | NULL              |                |
+-----------------+-------------+------+-----+-------------------+----------------+
5 rows in set (0.04 sec)


我想获取与参数化查询匹配的所有订单行(我的代码将传递到customer_id中),以及customers表中的客户名称。

我怎么做?

最佳答案

JOIN这两个表,并将条件放在查询末尾的WHERE子句中:

SELECT
  o.order_id,
  o.order_timestamp,
  o.item,
  o.price,
  c.name,
  c.address,
  c.contact
FROM Orders AS o
INNER JOIN Customers AS c ON o.customer_id = c.customer_id
WHERE o.customer_id = ?

关于mysql - 如何参数化JOIN?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18608451/

10-11 01:34