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

cl25kdpy  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(312)

为了创建一个数据列表,我尝试使用php和一条sql语句从同一个数据库的4个不同表中获取信息。这些表通过foreing键链接在一起,如下所示:p和b的主键作为d中的foreing键。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']."'"; 
}

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

6bc51xsx

6bc51xsx1#

我想这可以帮助你:

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';

甚至可以在连接方法上设置where条件。顺便说一句,要小心使用这个multi-join语句,因为它可能会使数据库速度变慢

相关问题