使用WHERE mysql查询从主表中获取所有记录并从子表中进行匹配

时间:2013-07-04 06:39:17

标签: php mysql codeigniter

我的MySQL表中有两个表:
1) mast_checkup (master)
2) tbl_lab_checkup (child)

表结构如下:
1) mast_checkup:

- checkid(pk)
- 标题
- 说明

2) tbl_lab_checkup

- labcheckupid(pk)
- labid(fk)
- mastcheckupid(fk)
- 折扣
- 费用

我想显示主表中的所有记录以及子表中labid ='1的所有记录 我尝试了以下查询。

SELECT * FROM mast_checkup mc
LEFT JOIN tbl_lab_checkup tlc ON
mc.checkupid=tlc.mastcheckupid WHERE
tlc.ladid=1

无法获得准确的结果。

我需要的是专利表中的所有记录以及来自子项的匹配项,如果未找到来自子项的匹配项,则会导致所有主字段和空子字段

必填结果

----------------------------------------------------------------------------------------
checkid | title   | labcheckupid| labid | discount | cost
----------------------------------------------------------------------------------------
   1    |title 1  |    1    |1      |  5       | 1500

   2    |title 2  |    NULL |NULL   |NULL      |    NULL
----------------------------------------------------------------------------------------

首先是主表和子表中的记录 第二个只在主人但不在孩子身上

此要求的任何解决方案?

1 个答案:

答案 0 :(得分:0)

我相信这就是你需要的......

SELECT * FROM mast_checkup mc
LEFT JOIN tbl_lab_checkup tlc ON mc.checkid=tlc.mastcheckupid
AND tlc.labid=1