簡體   English   中英

查詢以從兩個不同的表中獲取數據

[英]Query to fetch data from two different tables

我有兩張桌子。 表 A 和 B。 我有一個登錄表單,我將從表 A 中獲取用戶的用戶名、密碼、assign、assign2,並根據用戶的assign1 和assign2 從表B 中獲取數據。

我的查詢會是什么樣子? 尋找答案。 非常感謝。

Table A -THIS IS THE TABLE FOR LOG-IN FORM
==========================================
username | password | assign1 | assign2 |
------------------------------------------
SANDRA   | SANTOS   |    1    |   1     | //Values
--------------------------------------------

Table B - 
=======================================

name | assign1 | assign 2 |
------------------------------
DADA |  1      |   1      |  //this will be displayed
------------------------------
gorg |  2      |    2     | 

//this不能顯示,因為登錄的用戶assign1和assign2與此不匹配

您正在使用 $sql 變量

$result = $con->query($sql);

它應該是 $queryagain。

我認為您對數據庫編程非常陌生。 首先,我建議您閱讀https://www.w3schools.com/sql/sql_join.asp此頁面,並使用親自嘗試部分來處理示例。

加盟類型:

INNER JOIN:返回在兩個表中具有匹配值的記錄。 這意味着如果分配字段填充在表 A 中並且值包含在表 B 中,那么這種類型的連接應該與行匹配。

LEFT JOIN:返回左表中的所有記錄,以及右表中匹配的記錄。 這意味着表 A 中的所有行都將匹配該值是否包含在表 B 中。

RIGHT JOIN:返回右表中的所有記錄,以及左表中匹配的記錄。 這意味着表 B 中的所有行都將匹配該值是否包含在表 A 中。

FULL JOIN:當左表或右表中存在匹配時,返回所有記錄。 表 A 和表 B 中的所有行都將包含在結果集中,無論它們是否匹配。

您的 SQL 查詢可能如下所示:

$sql = "SELECT * FROM table_a a INNER JOIN table_b b on a.assign1 = b.assign1 INNER JOIN table_b b2 on  a.assign2 = b2.assign2";

sql 的執行部分可能會有所不同,具體取決於您的數據庫引擎或其他庫。

我認為這個線程也可以幫助你: 用 php 連接兩個 mysql 表

你的問題不清楚,但如果你想從依賴於assign1assign2 Table B獲取數據,你可以這樣做:

$queryagain = mysqli_query("SELECT * FROM tableB INNER JOIN tableA ON tableB.name=tableA.username WHERE tableA.assign1 = tableB.assign1 AND tableA.assign2 = tableB.assign2");

使用JOIN ,最佳做法是按主鍵 (id) 進行JOIN 如果tableB.name=tableA.username不是具有相同值的列,您可以通過其他列加入,例如assign1或assign2:

分配1:

$queryagain = mysqli_query("SELECT * FROM tableB INNER JOIN tableA ON tableB.assign1=tableA.assign1 WHERE tableA.assign2 = tableB.assign2");

分配2:

$queryagain = mysqli_query("SELECT * FROM tableB INNER JOIN tableA ON tableB.assign2=tableA.assign2 WHERE tableA.assign1 = tableB.assign1");

注意:Where 子句不是必需的,您可以根據您想要的結果編輯 WHERE 子句。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM