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