在数据库中的两个独立表上获取相同的id

zsohkypk  于 2021-06-17  发布在  Mysql
关注(0)|答案(3)|浏览(312)

我正在拿这个 customer_id 在我的table上 tbl_customers 当我得到这个id时,我还想获取 customer_id 在我的第二张table上 tbl_stocks 这样我就可以绑定 tbl_customers 有。
这是我的table tbl_customers 结构请看一下。

这是我的table tbl_stocks 还有,请看一下。

正如你所看到的,我想要的是 cutomer_idtbl_customers 。该id是绑定的,将获取中所有相同的id和行的值 tbl_stocks 哪个是 customer_id 另外,对于这种类型的查询,如何使sql查询语句解决这个问题?到目前为止,我有这个sql语句,但它没有得到数据。

//PSEUDO CODE ONLY IM NOT FAMILIAR WITH THE SYNTAX OF THIS PROBLEM

$sql = SELECT `tbl_customers` FROM `customer_id` = 1 AND SELECT `tbl_stocks` FROM `customer_id` = 1;

因此,如果它正在工作,我将获取的最终输出将如下所示

p、 我不需要在文本框或任何形式的输入中显示它,我只需要使用sql查询获取它,这样我就知道程序正在获取表的值,谢谢!

vlf7wbxs

vlf7wbxs1#

实际上不需要同时查询这两个表。由于客户id在stocks表中可用,因此您只需要:

SELECT
    s.customer_id,
    s.id,
    s.item,
    s.color
FROM tbl_stocks as s
WHERE s.customer_id = ?

如果要查询这两个表,例如检索其他一些客户信息,请使用联接:

SELECT
    c.customer_id,
    s.id,
    s.item,
    s.color
FROM
   tbl_customers as c
   INNER JOIN  tbl_stocks as s on s.customer_id = c.customer_id
WHERE c.customer_id = ?
sdnqo3pr

sdnqo3pr2#

你应该使用 joins 这是您可以尝试的查询。

select c.*, s.*
from tbl_customers c
join tbl_stocks s on s.customer_id = c.customer_id
and c.customer_id = 1

此外,你应该阅读更多关于https://dev.mysql.com/doc/refman/8.0/en/join.html
在这里,我将更新php页面中的answer w.r.t打印值

$dbConn = mysqli_connect('localhost', 'username', 'password', 'databaseName');
if(!$dbConn){
    echo "DB Not connected !";
}

$query = "select c.*, s.* from tbl_customers c join tbl_stocks s on s.customer_id = c.customer_id and c.customer_id = 1";
$result= $dbConn->query($query);
while($row = $result->fetch_object()){ 
    echo $row->customer_id;
    echo $row->color;
    // here you may add more columns to print
}
dxpyg8gm

dxpyg8gm3#

了解sql联接:

SELECT tbl_customers.customer_id,tbl_stocks.* 
FROM tbl_customers 
LEFT JOIN tbl_stocks 
    ON (tbl_customers.customer_id=tbl_stocks.customer_id)

相关问题