MySQL查询 - 使用多个表

时间:2016-03-28 08:51:21

标签: php mysql

我有4张桌子。 (简化了问题的4个表格)

表1:供应商 - ID,类型,TypeId,ExpiryDate

表2: SupplierType1 - Id,UserId,SupplierName

表3: SupplierType2 - Id,UserId,SupplierName

表4:用户 - ID,姓名

所有ID都只是表中的自动增量。

在供应商中 '类型'指的是SupplierType1或SupplierType2

' TYPEID'是' Id'来自SupplierType1或SupplierType2。

在SupplierType1和SupplierType2中均为 '用户ID'是来自用户的ID

我有' UserId' (如下图X所示)。我想返回一个包含以下列的列表: Supplier.Id,SupplierType1.RetailName,ExpiryDate

其中(SupplierType1.UserId ==' X' AND Supplier.TypeId == SupplierType1 AND Supplier.ExpiryDate< CurrentDate)

我最近才开始使用mysql,而我目前的解决方案似乎过于繁琐。热衷于学习更好的方法来做到这一点。我很感激你的帮助。提前谢谢!

1 个答案:

答案 0 :(得分:2)

查询

$qry = "
SELECT * 
FROM Supplier s
LEFT JOIN SupplierType1 s1 ON s1.id=s.TypeId
LEFT JOIN User u ON u.Id=s1.UserId
WHERE s1.UserId='X' AND s.TypeId='SupplierType1' AND s.ExpiryDate<CURDATE()
";