我想加入两个表事务和项目,但有些行返回空值,但在数据库中它们有值。我需要在我正在使用的php中查询此查询。表和查询如下。 。请帮我。 。
mysql> select * from item;
+----------+-------------------------+-----+--------+
| itemcode | item_abb | qty | price |
+----------+-------------------------+-----+--------+
| 02901 | King Bed | 34 | 150000 |
| 26350 | King Size Dinning Table | 33 | 15000 |
| 33321 | Sofa | 30 | 4500 |
| 4526 | chandelier | 22 | 5000 |
+----------+-------------------------+-----+--------+
4 rows in set (0.00 sec)
mysql> select * from transaction;
+---------------------+-----------+----------+-----------+------+--------------+
| datetime | transtype | itemcode | prevstock | qty1 | currentstock |
+---------------------+-----------+----------+-----------+------+--------------+
| 2017-04-08 20:49:37 | stockin | 4526 | 11 | 12 | 23 |
| 2017-04-08 20:50:35 | stockout | 2901 | 40 | 2 | 38 |
| 2017-04-08 21:00:35 | stockout | 4526 | 23 | 1 | 22 |
| 2017-04-08 22:24:16 | stockout | 2901 | 38 | 2 | 36 |
| 2017-04-09 06:41:47 | stockout | 2901 | 36 | 2 | 34 |
+---------------------+-----------+----------+-----------+------+--------------+
5 rows in set (0.00 sec)
mysql> select * from transaction left join item on transaction.itemcode = item.itemcode;
+---------------------+-----------+----------+-----------+------+--------------+----------+------------+------+-------+
| datetime | transtype | itemcode | prevstock | qty1 | currentstock | itemcode | item_abb | qty | price |
+---------------------+-----------+----------+-----------+------+--------------+----------+------------+------+-------+
| 2017-04-08 20:49:37 | stockin | 4526 | 11 | 12 | 23 | 4526 | chandelier | 22 | 5000 |
| 2017-04-08 20:50:35 | stockout | 2901 | 40 | 2 | 38 | NULL | NULL | NULL | NULL |
| 2017-04-08 21:00:35 | stockout | 4526 | 23 | 1 | 22 | 4526 | chandelier | 22 | 5000 |
| 2017-04-08 22:24:16 | stockout | 2901 | 38 | 2 | 36 | NULL | NULL | NULL | NULL |
| 2017-04-09 06:41:47 | stockout | 2901 | 36 | 2 | 34 | NULL | NULL | NULL | NULL |
+---------------------+-----------+----------+-----------+------+--------------+----------+------------+------+-------+
5 rows in set (0.00 sec)

答案 0 :(得分:1)
使用左连接时,将返回连接左侧表中的所有行。看起来您打算使用内连接,其中只存在两个表都具有连接条件的行。
select * from transaction join item on transaction.itemcode = item.itemcode;