我有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,而我目前的解决方案似乎过于繁琐。热衷于学习更好的方法来做到这一点。我很感激你的帮助。提前谢谢!
答案 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()
";