使用联接语法的动态 MySQL 记录集查询


Dynamic MySQL recordset query using join syntax

我无法正确获取JOIN语法来更改PHP中的现有MySQL查询以包含来自另一个表的连接。 我有另一个指定为 DB_TABLE2 的表,其中包含列 InvmNumr 和 InvmDesc。 InvmNumr 和 InvlNumr 在每个表中的值完全相同,我需要在此查询中显示表 2 中的 InvmDesc?

        $res = mysql_query('SELECT LocId, InvlNumr, InvlQuant FROM ' . DB_TABLE1
          . ' WHERE LocId = ''' . mysql_real_escape_string($cType) . '''
        AND InvlNumr = ''' . mysql_real_escape_string($br) . "'");
        $markup = '';
阅读左

联接与内部联接,具体取决于数据在DB_TABLE2表中的存储方式。

$res = mysql_query('SELECT ' . DB_TABLE1 . '.LocId, ' . DB_TABLE1 . '.InvlNumr, ' .
    DB_TABLE1 . '.InvlQuant, ' . DB_TABLE2 . '.InvmDesc 
    FROM ' . DB_TABLE1 . ' LEFT JOIN ' . DB_TABLE2 . ' ON ' . 
    DB_TABLE1 . '.InvlNumr = ' . DB_TABLE2 . '.InvmNumr 
    WHERE ' . DB_TABLE1 . '.LocId = ''' . mysql_real_escape_string($cType) . ''' 
    AND ' . DB_TABLE1 . '.InvlNumr = ''' . mysql_real_escape_string($br) . "'");

试试这个

SELECT db1.LocId,db1.InvlNumr,db1.InvlQuant
FROM DB_TABLE1  db1
INNER JOIN DB_TABLE2 db2 ON db1.InvlNumr = db2.InvlNumr
WHERE dbq.LocId = $cType
AND db1.InvlNumr = $br