我在mysql中有两个表,tender_items
和item_price_add_manual
。
这两个表都有名为itemName
和tender_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
答案 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";