[英]How to grab an ID of an existing record from one table and insert it along with other records into another table?
[英]How to SELECT records from One table If Matching Record In Not Found In Other Table
暈,我正在嘗試讓查詢從一個表中選擇記錄,說“ deal_asking”,前提是在第二個表“ deal_unpluged”中找不到匹配的記錄。 這就是我做的(下面)使用LEFT JOIN選擇記錄,然后在PHP端過濾記錄的方法。 我正在尋找解決此問題的Mysql查詢方式的方法,請幫助..
提前致謝...
SELECT DA.das_id, DU.das_id_fk
FROM deal_asking DA
LEFT JOIN deal_unpluged DU ON DA.das_id= DU.das_id_fk
WHERE department='8'
ORDER BY das_id ASC LIMIT 10 OFFSET 0
只需將其添加到您的WHERE
子句中:
AND DU.das_id_fk IS NULL
說我有以下兩個表:
+-------------------------+ +-------------------------+ | Person | | Pet | +----------+--------------+ +-------------------------+ | PersonID | INT(11) | | PetID | INT(11) | | Name | VARCHAR(255) | | PersonID | INT(11) | +----------+--------------+ | Name | VARCHAR(255) | +----------+--------------+
我的表包含以下數據:
+------------------------+ +---------------------------+ | Person | | Pet | +----------+-------------+ +-------+----------+--------+ | PersonID | Name | | PetID | PersonID | Name | +----------+-------------+ +-------+----------+--------+ | 1 | Sean | | 5 | 1 | Lucy | | 2 | Javier | | 6 | 1 | Cooper | | 3 | tradebel123 | | 7 | 2 | Fluffy | +----------+-------------+ +-------+----------+--------+
現在,如果我想要所有Person
的列表:
SELECT pr.PersonID, pr.Name
FROM
Person pr
如果我想要一個擁有寵物的Person
列表(包括他們的寵物名稱):
SELECT pr.PersonID, pr.Name, pt.Name AS PetName
FROM
Person pr
INNER JOIN Pet pt ON pr.PersonID = pt.PersonID
如果我想要一個沒有寵物的Person
列表:
SELECT pr.PersonID, pr.`Name`
FROM
Person pr
LEFT JOIN Pet pt ON pr.PersonID = pt.PersonID
WHERE
pt.`PetID` IS NULL
如果我要列出所有Person
以及他們的寵物(即使他們沒有寵物)的列表,請執行以下操作:
SELECT
pr.PersonID,
pr.Name,
COALESCE(pt.Name, '<No Pet>') AS PetName
FROM
Person pr
LEFT JOIN Pet pt ON pr.PersonID = pt.PersonID
如果我想要一個Person
的列表以及它們擁有多少寵物的計數:
SELECT pr.PersonID, pr.Name, COUNT(pt.PetID) AS NumPets
FROM
Person pr
LEFT JOIN Pet pt ON pr.PersonID = pt.PersonID
GROUP BY
pr.PersonID, pr.Name
與上述相同,但不顯示包含0個寵物的Person
:
SELECT pr.PersonID, pr.Name, COUNT(pt.PetID) AS NumPets
FROM
Person pr
LEFT JOIN Pet pt ON pr.PersonID = pt.PersonID
GROUP BY
pr.PersonID, pr.Name
HAVING COUNT(pt.PetID) > 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.