检索同一数据库中不同表中的多个记录

时间:2017-09-19 08:34:05

标签: mysql

我有一个由两个表组成的小型数据库。我想从这两个表中检索多个记录,例如:

Table 01 -complaint_details - complaint_details_id(PK) 
Table 02 - Nature_Complaint - complain_no (PK)
DB name -gis

我想从Nature_of_Complaint表中的表01和自然字段中检索complaint_details_id,district。

我按如下方式编写了查询,但它产生了一些错误:

SELECT complaint_details_id,district 
FROM gis.complaint_details INNER JOIN nature FROM nature_complaint 
WHERE
    gis.complaint_details.complaint_details_id=gis.nature_complaint.complain_no;

4 个答案:

答案 0 :(得分:1)

这是您的查询的样子:

SELECT complaint_details.complaint_details_id,
       complaint_details.district,
       nature_complaint.nature
FROM gis.complaint_details 
INNER JOIN gis.nature_complaint 
 ON(complaint_details.complaint_details_id=nature_complaint.complain_no)
  • 您希望作为输出的字段应在SELECT子句中指定。
  • INNER JOIN与ON子句一起使用,而不是WHERE子句。
  • 使用别名使代码更清晰,更清晰。

答案 1 :(得分:0)

尝试以下查询:

SELECT cd.complaint_details_id, cd.district, nc.nature
FROM complaint_details cd JOIN Nature_Complaint nc 
     ON cd.complaint_details_id = nc.complain_no;

答案 2 :(得分:0)

问题是第二个FROM。 记住每次进行JOIN时都必须设置ON值

https://dev.mysql.com/doc/refman/5.7/en/join.html

SELECT complaint_details_id,district,nature_complaint.nature FROM gis.complaint_details  INNER JOIN gis.nature_complaint ON(complaint_details.complaint_details_id=nature_complaint.complain_no)

答案 3 :(得分:0)

您需要在其中一个表中添加外键才能正常工作。

    SELECT complaint_details_id,district,nature_complaint.nature
    FROM gis.complaint_details 
    JOIN gis.nature_complaint 
    ON(complaint_details.complaint_details_id=nature_complaint.complain_FK)

将主键(complaints_details.complaint_details_id)与添加外键的任何内容一起加入,如nature_complaint.complain