如何在mysql查询中合并两个表

时间:2015-07-01 21:56:18

标签: mysql sql

对不起,我知道不再推荐使用mysql,但在这种情况下我无法控制并且必须使用它。

现在问题。

我有两张桌子 Gamesvideos

内部游戏我

| id | gameID | GameTitle | 
| 1  | 1      | Halo ODST |
| 2  | 2      | Disgaea 4 |

我有内幕视频

| id | game | videoTitle | image |
| 1  | 1    | Title 1    | PATH  |
| 2  | 1    | Title 2    | PATH  |
| 3  | 2    | Title 3    | PATH  |
| 4  | 1    | Title 4    | PATH  |

我基本上需要做以下事情

Select x,y,z from video where videos.game = games.gameID

基本上会读

select id, videoTitle, image from videos where video.game = 1

(或其他一些数值)

我知道我必须使用一个连接,但是我尝试的任何东西似乎都没有用,是的,我无处可去。

我最接近的是下面的查询,它说它有效,但是返回一个空的结果集,显然它错了。

SELECT * FROM `games` INNER JOIN `videos` on `game` WHERE `game` = 1

如果它有任何帮助我在这个阶段使用phpmyadmins sql查询工具而不是实际代码,因为我只想在编码之前使其工作。

非常感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:1)

INSERT INTO `SOItem` ( SalesOrderId, SOItemId, PartId, CustDeliv, OnDate, Qty, UnitAmount, WebOrderProductId )
SELECT `SalesOrder`.`SalesOrderId`, IF((SELECT (SOItem.SOItemId) FROM d1.SOItem WHERE SalesOrder.SalesOrderId = SOItem.SalesOrderId) IS NULL, 1, (SELECT MAX(SOItem.SOItemId)+1 FROM d1.SOItem WHERE SalesOrder.SalesOrderId = SOItem.SalesOrderId)) AS Expr1, ICS_Web_Parts_Link.PartId, SalesOrder.Date, SalesOrder.Date, order_product.quantity, order_product.price, order_product.order_product_id
FROM d2.order_product INNER JOIN d1.ICS_Web_Parts_Link ON order_product.model = ICS_Web_Parts_Link.Model INNER JOIN d1.SalesOrder ON order_product.order_id = SalesOrder.WebOrderId LEFT JOIN d1.SOItem ON order_product.order_product_id = SOItem.WebOrderProductId
WHERE NOT EXISTS (SELECT order_product_id FROM d2.order_product WHERE order_product.order_product_id = SOItem.WebOrderProductId);

答案 1 :(得分:1)

你可以使用视图来合并表,并可以对它进行操作..

create view view_name as
select Games.id,gameID, GameTitle,videos.id, game, videoTitle, image 
from Games,videos
where videos.game = games.gameID

其中section将包含id或您想要匹配的任何内容