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

时间:2018-06-10 16:11:51

标签: php mysql select inner-join where

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

中的前导键

Here is the data base

使用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']."'"; 
}

但是对我来说太复杂了。

1 个答案:

答案 0 :(得分:0)

我想这可以帮到你:

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

即使你可以把条件放在连接方法的哪里。 顺便说一句,请注意这个多连接语句,因为这可能会使您的数据库变慢