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.订单
- 产品名称
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