私は2つのテーブルを持っています。1つのテーブルからすべてを選択し、2番目のテーブルから一致する行を選択したい-基準に一致する。
したがってtblConfig_Group
、グループのリストが含まれています。
|ID | groupCode |
|1 | A |
|2 | B |
|3 | C |
|4 | D |
そしてtblConfig_CustomerGroup
、そのグループとそのグループ内の顧客のリストが含まれています。
|ID | groupCode | customerID |
|1 | A | 74 |
|2 | B | 74 |
|3 | A | 235 |
|4 | C | 74 |
一致AND基準(customerID
= 74)がある2番目のテーブルの行のみを表示する必要があります
期待される結果:
|ID | groupCode | customerID |
|1 | A | 74 |
|2 | B | 74 |
|3 | C | 74 |
|4 | D | |
いくつかのクエリを試しましたが、うまくいかないようです...
SQLクエリ1:
SELECT g.groupCode, cg.customerID FROM tblConfig_Group g
LEFT JOIN tblConfig_CustomerGroup cg ON g.groupCode = cg.groupCode
WHERE cg.customerID = '74'
実際の結果:行1、2、3。
| groupCode | customerID |
| A | 74 |
| B | 74 |
| A | 74 |
SQLクエリ2:
SELECT g.groupCode, cg.customerID FROM tblConfig_Group g
left outer join tblConfig_CustomerGroup cg on g.groupCode = cg.groupCode
WHERE cg.customerID = '74'
UNION
SELECT g.groupCode, cg.customerID
FROM tblConfig_Group g
right outer join tblConfig_CustomerGroup cg on g.groupCode = cg.groupCode
実際の結果:行1、2、3+顧客235
| groupCode | customerID |
| A | 74 |
| B | 74 |
| A | 74 |
| A | 235 |
SELECT
g.id,
g.groupCode,
cg.customerID
FROM tblConfig_Group g
LEFT JOIN tblConfig_CustomerGroup cg
ON g.groupCode = cg.groupCode
AND cg.customerID = '74';
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加