考虑表格要求和订单
CREATE TABLE `req` (
`req_id` bigint(20) NOT NULL,
`order_date` timestamp NULL DEFAULT NULL,
`status` varchar(20) COLLATE utf8_bin DEFAULT NULL,
`order_id` bigint(20) NOT NULL,`
PRIMARY KEY (`req_id`),
KEY `order_id` (`order_id`),
CONSTRAINT `req_ibfk_16` FOREIGN KEY (`order_id`) REFERENCES `order` (`order_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;
CREATE TABLE `orders` (
`order_id` bigint(20) NOT NULL,
`acc_id` bigint(20) DEFAULT NULL,
`acc_name` varchar(256) COLLATE utf8_bin DEFAULT NULL,
PRIMARY KEY (`order_id`),
KEY `index_name` (`order_id`,`account_id`),
CONSTRAINT `order_ibfk_1`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
/*!40101 SET character_set_client = @saved_cs_client */;
“要选择列oder_id,oder_date和status,其中status为表req的空值,并使用oder id选择订单表的acc_id和acc_name列”?
并以
共同显示 status , oder_id , acc_id, acc_name
SELECT status,order_date,order_id FROM req WHERE status is null;
但是我对如何使用ID选择另一个表列有疑问 并一起给他们看
我已将其用于从一个表中选择列
SELECT status,order_date,order_id FROM req WHERE status is null;
我希望输出下面提到的选择列
status,oder_id,acc_id,acc_name
答案 0 :(得分:0)
您需要通过使用两个表之间的关系来联接两个表
根据您的表,order_id是'orders'
的主键,并且是'req'
使用此代码:
SELECT
req.status , req.oder_id , orders.acc_id, orders.acc_name
FROM
req, orders
WHERE
req.order_id = orders.order_id
and
req.status is null;
这基本上将两个表联接在一起,您需要编写字段来自哪个表。这是代码的长版,但它是最简单的理解方法。
如果您有任何疑问,请告诉我。
编辑: 通过不以逗号分隔的联接添加另一种方法。改为使用完全联接。
SELECT
req.status , req.oder_id , orders.acc_id, orders.acc_name
FROM
req
Full Join
orders
on
req.order_id = orders.order_id
WHERE
req.status is null;