繁体   English   中英

如何在另一个表中选择具有匹配行的行

[英]How to select rows with matching rows in another table

我有两张桌子。

First tabel called:(data):
---------------------------------------- 
id    link    number    isik    status
---------------------------------------- 
1    /link    78788     56677     55

Second table called:(test)
----------------------------------------
id     kood     status
----------------------------------------
1      56677     111

两个表中唯一相似的是 isik 和 kood

如何从第一个表中获取所有行,其中isik(First table) = kood(Second table)

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT data * FROM data INNER JOIN test ON data.isik = test.kood";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

    while($row = $result->fetch_assoc()) {
        echo "Numb: " . $row["number"]. " - Name: " . $row["isik"]. " " . $row["link"]. "<br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>

但我得到 0 结果

您可以使用内部联接将表联接在一起,并仅从第一个表中选择行。 这将仅选择第二个表具有isik匹配值的isik

SELECT `data`.* FROM `data` INNER JOIN `test` ON `data`.`isik` = `test`.`kood`
SELECT *
FROM First a
WHERE EXISTS (SELECT 1
          FROM Second b
          WHERE a.isik = b.isik);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM