合并两个表并在php中显示唯一数据

时间:2015-10-29 06:59:53

标签: php mysql

我在mysql中有两个表,tender_itemsitem_price_add_manual

这两个表都有名为itemNametender_id的字段。所以我的要求是如何编写查询以加入这些表并仅显示某些itemNames,例如:

tender_id = 460.所以php中的结果就像

 tender_id | ItemName
 ______________________
 460         Item 1
 460         Item 2
 460         Item 3

这可能仅仅是一个查询,还是我需要使用php脚本进行操作?

我试过这个

    SELECT tender_items.item_name,
   tender_items.tender_id,
  item_price_add_manual.item_name,
  item_price_add_manual.tender_id
  FROM tender_items INNER JOIN item_price_add_manual ON     tender_items.tender_id=item_price_add_manual.tender_id WHERE tender_items.tender_id=460

通过上述查询,我​​得到如下结果:

 tender_id | ItemName  | tender_id   |   ItemName
 __________________________________________________
 460         Item 1      460           Item 3
 460         Item 2      460           Item 3

但我期待结果如下:

 tender_id | ItemName
 ______________________
 460         Item 1
 460         Item 2
 460         Item 3

3 个答案:

答案 0 :(得分:1)

SELECT item_name,tender_id FROM

((SELECT item_name, tender_id
FROM tender_items 
WHERE tender_id=460)

UNION 

(SELECT item_name, tender_id
FROM item_price_add_manual 
WHERE tender_id=460)) AS T
GROUP BY item_name,tender_id

答案 1 :(得分:1)

您似乎只需UNION操作:

(SELECT item_name, tender_id
FROM tender_items 
WHERE tender_id=460)

UNION 

(SELECT item_name, tender_id
FROM item_price_add_manual 
WHERE tender_id=460)

manual中所述:

  

UNION的默认行为是从中删除重复的行   结果。

因此,您对不同值选择的要求也将得到满足。

答案 2 :(得分:0)

我假设您有一个将两个表链接在一起的外键。您不需要将所有内容从一个表链接到另一个表,因为它会使事情变得非常复杂并且可能发生错误,从而使调试变得困难。您可以查看W3School school tutorial以了解具体SELECT的方法。

$query = "SELECT * FROM tender_items, item_price_add_manual WHERE tender_items.tender_id = item_price_add_manual.tender_id AND tender_id = 460";