嘿,在我最近开始的一个项目中,我在我头上。
我有 8 个需要连接的表,以便所有表的内容都将通过 1 个查询显示
但是我努力想出正确的查询,因为我对 SQL 很陌生
我制作了一个数据库图,显示了键之间的关系,不要介意那些没有分配箭头的只是信息。
所以基本上我只希望所有 8 个表都以这样一种方式加入,以便我可以通过 php 脚本编写例如。
$result = mysql_query(“SQL”);
$row = mysql_fetch_array($result);
$id = $row["value"]; 当然我会使用某种循环来显示多个项目
它将以我的首页上的多个项目结束,这些项目应该由该类别中的最新项目显示,我希望并假设这是一个简单的连接位置。
但总而言之,我要寻找的是一个 SQL,它将 8 个表与 1 个查询连接起来,以便我可以使用来自 8 个表中的任何一个的任何信息。
我想我找到了一个可行的解决方案
SELECT *
FROM Deal d
INNER JOIN DealPrice dp ON d.Id = dp.DealId
LEFT JOIN DealMedia dm ON d.Id = dm.DealId
LEFT JOIN StorageFile sf ON dm.Id = sf.binId AND sf.name = 'original_t'
LEFT JOIN DealLocation dl ON d.Id = dl.dealid
LEFT JOIN Location l ON dl.location = l.id
LEFT JOIN DealCategoryAssoc dca ON d.Id = dca.DealId
LEFT JOIN DealCategory dc ON dca.CategoryId = dc.id
LEFT JOIN I18N i ON dc.id = i.relatedId AND i.model = 'DealCategory' AND i.language = 'da_dk'
我发现有另一个表 DealLocation 我没有考虑到我的图表中,因此我自己修改了一些代码