如何在mysql中执行外连接

时间:2017-12-29 18:22:38

标签: mysql sql

我有一个包含树列,id,用户ID和车辆ID的表A.表B包含车辆和车辆名称。

Activity

鉴于用户ID,我需要获取与表A不匹配的所有车辆名称。我已经尝试过外连接,但我无法获得我需要的信息。  例如:给定用户ID 1,查询应该返回Car和Rocket。

提前致谢

2 个答案:

答案 0 :(得分:1)

使用while ($row = $stmt->fetch()) { $class = $row['votes'] == 0 ? 'zero' : ($row['votes'] < 0 ? 'neg' : 'pos'); echo '<h1 id="scoreCounter" class="' . $class . '">'.$row['votes'].'</h1>'; } h1.zero { color: #000; } h1.pos { color: #0F0; } h1.neg { color: #F00; }

这很简单
not in

答案 1 :(得分:0)

我还想过使用交叉连接,并且能够在你更熟悉连接逻辑的情况下获得输出。

SELECT CJOIN.USER_ID, CJOIN.VEHICLE_ID, CJOIN.VEHICLE_NAME
FROM
(SELECT DISTINCT A.USER_ID, B.ID AS VEHICLE_ID, B.VEHICLE_NAME FROM TABLE_A A CROSS JOIN TABLE_B B) CJOIN
LEFT JOIN
TABLE_A D
ON CJOIN.USER_ID = D.USER_ID AND CJOIN.VEHICLE_ID = D.VEHICLE_ID
WHERE D.USER_ID IS NULL AND D.VEHICLE_ID IS NULL;

首先,我通过交叉连接获得USER_ID x VEHICLE_ID的所有可能组合,并在左连接中使用此表来提取没有匹配的记录。