如何关联 PHP MYSQL 中的两列

How to relate two column in PHP MYSQL

我创建了一个包含所有请求信息的请求table。

table 包含这些列:

requestid , itemrequest1, itemrequest2, itemrequest3, quantity1, quantity2, quantity3

如何建立关系,以便如果 itemrequest 在列 itemrequest2 中有一个值,它将从列 quantity2 中获取数量。

我的查询是这样的:

$query2=mysql_query("select * from tbl_request WHERE unit='$unit' AND  (itemrequest1='$itemrequest' or itemrequest2='$itemrequest' or  itemrequest3='$itemrequest')");
$record_num=mysql_num_rows($query2);

while ($data1 = mysql_fetch_array($query2))

问题是,当 $itemrequestitemrequest3 列中有值时,数量将始终显示第 1 列中的数量。

您可以在查询中使用条件,以便 select 根据另一列的值找到正确的列。

SELECT requestid, 
    (CASE WHEN itemrequest1 = '$itemrequest' THEN quantity1
        ELSE (
            CASE WHEN itemrequest2 = '$itemrequest' THEN quantity2
            ELSE (
                CASE WHEN itemrequest3 = '$itemrequest' THEN quantity3
            END)
        END)
    END)
FROM tbl_request

虽然你应该仔细看看你的数据库结构,如果你必须这样做,最好改进你的结构并有更好的tables/fields。