我尝试从同一数据库的 4 个不同表中获取信息

Posted

技术标签:

【中文标题】我尝试从同一数据库的 4 个不同表中获取信息【英文标题】:I try to get information from 4 different tables of the same database 【发布时间】:2018-11-19 23:45:16 【问题描述】:

为了创建数据列表,我尝试从同一个数据库的 4 个不同表中获取信息,使用 php 和仅一个 sql 语句。这些表通过外键链接在一起,如下所示: P 和 B 的主键作为 D 中的外键。 T 的主键是 B 中的外键

3条不同的sql语句很容易,


$sql1="SELECT * FROM daneismos WHERE danDateEpistr IS NULL ORDER BY danDateDaneis";

$sql2="SELECT * FROM titlos WHERE titlosId IN 
(SELECT bookTitle FROM book WHERE bookID = '".$recDaneismos['danBookId']."')";

$sql3="SELECT * FROM person WHERE personId = '".$recDaneismos['danPersonId']."'"; 

但对我来说只使用一个太复杂了。

【问题讨论】:

请格式化您的问题..查看链接***.com/help/how-to-ask 【参考方案1】:

我想这可以帮助你:

SELECT p.X, d.Y, b.Z, t.F
FROM person p
  JOIN daneismos d ON p.personId = d.danPersonId
  JOIN book b ON d.danBookId = b.bookID
  JOIN titlos t ON t.titlosId = b.bookTitle
  WHERE b.bookId = '$danBookId'
    AND personId = 'danPersonId';

你甚至可以在 join 方法上设置 where 条件。 顺便说一句,小心这个多连接语句,因为可能会使你的数据库变慢

【讨论】:

以上是关于我尝试从同一数据库的 4 个不同表中获取信息的主要内容,如果未能解决你的问题,请参考以下文章

从具有不同条件的同一张表中获取数据[关闭]

比较并从同一个表中获取列详细信息

SQL Server:从同一个表和不同表中获取日期时使用其他东西而不是联合

如何从不同的表中获取最大版本并加入表?

比较两个列并从同一个表中的另一列获取数据

如何获取同一张表中不同类别的布尔值的比例