比方說,我有一個表人和表寵物我想顯示所有有寵物的人和所有沒有寵物的人。一個人可以沒有寵物或任何數量的寵物。從其他表中匹配行的存在創建列?
我可以使用IF存在,但後來我不得不使用兩個查詢:
select * from person where exists (select * from pet where person.id = pet.owner)
和
select * from person where not exists (select * from pet where person.id = pet.owner)
有沒有辦法將這些在一個單一的查詢合併,讓我可以有一個人名數據列表和一個額外的列,說明該人是否有寵物?我不想使用group by和count,因爲我不需要寵物的數量,只有寵物的信息,所以我想將上述兩個查詢的EXISTS數據合併爲一個額外的布爾值柱。
可以做到這一點嗎?
這看起來不錯,雖然它在mysql命令行中給我一個語法錯誤。可能它是我的錯字,仍在檢查...... – Tom 2010-11-02 09:04:36
看起來CASE只能用於存儲過程,而不能用於簡單查詢。很遺憾。因爲這正是我需要的,但我目前不使用存儲過程。 – Tom 2010-11-02 09:09:14
也可能是我的一個錯字,我手頭沒有安裝mysql來試用它。 – SilverSkin 2010-11-02 09:56:44