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

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

表2:SupplierType1-ID,UserId,SupplierName

表3:SupplierType2-ID,UserId,SupplierName

表4:用户-ID,名称

所有Id只是在表中自动递增。

在供应商中:
“类型”指的是SupplierType1或SupplierType2

“ TypeId”是SupplierType1或SupplierType2中的“ Id”。

在SupplierType1和SupplierType2中:
“ UserId”是用户的ID

我有“ UserId”(在下面显示为X)。我想返回一个包含以下列的列表:
Supplier.Id,SupplierType1.RetailName,ExpiryDate

其中(SupplierType1.UserId =='X'AND Supplier.TypeId == SupplierType1 AND Supplier.ExpiryDate
我只是最近才开始使用mysql,而我目前的解决方案似乎太麻烦了。热衷于学习更好的方法来做到这一点。我会很感激的。提前致谢!

最佳答案

询问

$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()
";

10-08 14:56