0
我有3個表:MySQL的聲明沒有返回預期
供應商: ID,姓名,地址,郊區,國家,電話,電子郵件,刪除
客戶: ID,名稱,地址,郊區,國家,電話,電子郵件,刪除
ACCREDITED_SUPPLIERS: ID,supplier_id,CUSTOMER_ID
我要顯示所有的供應商和「標籤」那些在ACCREDITED_SUPPLIERS已鏈接...
這裏是我的發言:
SELECT SQL_CALC_FOUND_ROWS s.id, s.name, s.suburb, s.state, s.phone, s.email, s.deleted,
IF(ac.customer_id = '220', 1, 0) AS accredited
FROM suppliers s
LEFT OUTER JOIN accredited_suppliers ac ON ac.supplier_id = s.id
WHERE s.deleted='0'
ORDER BY s.name
此語句只返回10「標記」行
由於某些原因,它缺少3行莫名其妙!
SELECT *
FROM `accredited_suppliers`
WHERE `customer_id` = '220'
返回值:13行
是我上面是否正確?我是否正確地發佈它?
有我的3個人失蹤行!這解決了問題,但原始聲明出了什麼問題?它只是離開嗎? – 2011-04-17 11:28:24
我不太確定你在舊陳述中做了什麼=)這很愚蠢......你可能想太難了。評估儘可能簡單:我希望所有供應商(FROM),然後可選(LEFT JOIN)匹配認證。聽起來像是一個LEFT JOIN。 – Rudie 2011-04-17 11:30:05
不要忘記'WHERE deleted ='0'' ...那裏有你的3行:再次失蹤? – Rudie 2011-04-17 11:31:12