Mysql 用LEFTJOIN连接两个表的SQL

Mysql 用LEFTJOIN连接两个表的SQL,mysql,Mysql,我有桌子 表2.订单 产品名称 下面是我必须查询的SQLtable_order,它在输出产品id时非常有效,但我需要它显示它的名称而不是编号。我需要用LEFTJOIN修改mySQL,以某种方式连接到表product\u name,但我一直收到一个错误。所以不是 99=15,99=16 我需要 99=name1,99=name2 SELECT table_order.order_id, table_order.product_id FROM table_order

我有桌子

  • 表2.订单
  • 产品名称
下面是我必须查询的SQL
table_order
,它在输出产品id时非常有效,但我需要它显示它的名称而不是编号。我需要用
LEFTJOIN
修改mySQL,以某种方式连接到表
product\u name
,但我一直收到一个错误。所以不是

99=15,99=16

我需要

99=name1,99=name2

SELECT table_order.order_id, table_order.product_id
              FROM table_order 
              WHERE table_order.order_id=99
              ORDER BY table_order.order_product_id


table table_order
_________________________
order_id  |  product_id |
_________________________
99        |  15         |
99        |  16         |
_________________________

table product_name
___________________________
product_id |  product_name |
___________________________
15         |  name1        |
16         |  name2        |
___________________________
使用


看看这是否有效。

您需要加入表,正如您所说的,在产品id上

SELECT table_order.order_id, product_name.product_name
FROM table_order 
    INNER JOIN product_name on table_order.product_id = product_name.product_id
WHERE table_order.order_id=99
ORDER BY table_order.product_id

如果需要输出所有订单,而不管该表的产品id是否与产品表连接,则需要使用左联接

SELECT o.order_id, p.product_name
   FROM table_order o
      LEFT JOIN product_name p  ON o.product_id = p.product_id  
   ORDER BY o.product_id
但是,如果只需要获取两个表中存在的所有行,则可以使用内部联接

SELECT o.order_id, p.product_name
   FROM table_order o
      INNER JOIN product_name p  ON o.product_id = p.product_id  
   ORDER BY o.product_id
SELECT o.order_id, p.product_name
   FROM table_order o
      LEFT JOIN product_name p  ON o.product_id = p.product_id  
   ORDER BY o.product_id
SELECT o.order_id, p.product_name
   FROM table_order o
      INNER JOIN product_name p  ON o.product_id = p.product_id  
   ORDER BY o.product_id