mysql排除两个表中id相同的结果
mysql exclude results with same id in two tables
我有一个可以获取一些结果的工作查询。
$sql = "
SELECT
swdl.wedding_dress AS wedding_dress,
wd.name AS name,
wdi.url AS image
FROM salons_wedding_dresses_link AS swdl
LEFT JOIN wedding_dresses AS wd ON swdl.wedding_dress = wd.id
LEFT JOIN wedding_dress_images AS wdi ON wdi.wedding_dress = wd.id AND wdi.main_image = 1
WHERE swdl.salon = ? AND wd.active = 1
";
我想要的是将其更新为仅获取 table salons_wedding_dresses_link
中 wedding_dress
不在 table wedding_dress_dress_collection_link
列 wedding_dress_dress_collection_link
中的结果 wedding_dress_id
但我没有这样做。
下面是更新后的查询,更新以粗体显示。
$sql = "
SELECT
swdl.wedding_dress AS wedding_dress,
wd.name AS name,
wdi.url AS image
FROM salons_wedding_dresses_link AS swdl
LEFT JOIN wedding_dress_dress_collection_link AS wddcl
------------------------------------------------------
LEFT JOIN wedding_dresses AS wd ON swdl.wedding_dress = wd.id
LEFT JOIN wedding_dress_images AS wdi ON wdi.wedding_dress = wd.id AND wdi.main_image = 1
WHERE
swdl.wedding_dress NOT IN (SELECT wddcl.wedding_dress_id FROM wddcl) AND
------------------------------------------------------------------------
swdl.salon = ? AND wd.active = 1
";
select 查询以获取 salons_wedding_dresses_link
中存在但 wedding_dress_dress_collection_link
中不存在的结果:
select s1.*,s2.wedding_dress_collection_id,s2.wedding_dress_id
from salons_wedding_dresses_link s1
left join wedding_dress_dress_collection_link s2 on
s1.wedding_dress=s2.wedding_dress_id
whrere s2.wedding_dress_id is null;
我有一个可以获取一些结果的工作查询。
$sql = "
SELECT
swdl.wedding_dress AS wedding_dress,
wd.name AS name,
wdi.url AS image
FROM salons_wedding_dresses_link AS swdl
LEFT JOIN wedding_dresses AS wd ON swdl.wedding_dress = wd.id
LEFT JOIN wedding_dress_images AS wdi ON wdi.wedding_dress = wd.id AND wdi.main_image = 1
WHERE swdl.salon = ? AND wd.active = 1
";
我想要的是将其更新为仅获取 table salons_wedding_dresses_link
中 wedding_dress
不在 table wedding_dress_dress_collection_link
列 wedding_dress_dress_collection_link
中的结果 wedding_dress_id
但我没有这样做。
$sql = "
SELECT
swdl.wedding_dress AS wedding_dress,
wd.name AS name,
wdi.url AS image
FROM salons_wedding_dresses_link AS swdl
LEFT JOIN wedding_dress_dress_collection_link AS wddcl
------------------------------------------------------
LEFT JOIN wedding_dresses AS wd ON swdl.wedding_dress = wd.id
LEFT JOIN wedding_dress_images AS wdi ON wdi.wedding_dress = wd.id AND wdi.main_image = 1
WHERE
swdl.wedding_dress NOT IN (SELECT wddcl.wedding_dress_id FROM wddcl) AND
------------------------------------------------------------------------
swdl.salon = ? AND wd.active = 1
";
select 查询以获取 salons_wedding_dresses_link
中存在但 wedding_dress_dress_collection_link
中不存在的结果:
select s1.*,s2.wedding_dress_collection_id,s2.wedding_dress_id
from salons_wedding_dresses_link s1
left join wedding_dress_dress_collection_link s2 on
s1.wedding_dress=s2.wedding_dress_id
whrere s2.wedding_dress_id is null;