-1

MySQL を使い始めたばかりですが、これに対する答えがどこにも見つからないのは、それが存在しないためでしょうか?

これら 2 つを 1 つのテーブルに 2 つの列としてまとめたい

SELECT CONCAT(Name, ' ',Category) as Pet_Name_and_Category
FROM Animal

SELECT CONCAT(firstname, ' ',lastname) as Customer_Name
From PetCustomer

したがって、私が望むテーブルは次のようになります。

Gary, Snail               Spongebob Squarepants

Sandy, Squirrel           Patrick Star

これらは同じテーブル内の 2 つの別々の列です。

4

4 に答える 4

0

これを試して、

select Name || ' ' || Category from Animal
union
select firstname || ' ' || lastname from PetCustomer;

これらを別の列にしたい場合は、これを使用できます。

select Name || ' ' || Category as pet, firstname || ' ' || lastname as owner
from Animal, PetCustomer
where <join_condition_depending_on_table_structure>;
于 2013-02-06T08:03:26.683 に答える
0

を使用する必要があるINNER JOINため、次のようになります。

SELECT 
    CONCAT(Name, ' ',Category) as Pet_Name_and_Category, 
    CONCAT(firstname, ' ',lastname) as Customer_Name
FROM Animal 
    INNER JOIN PetCustomer ON Animal.Customer_id = PetCustomer.id

結合構文は、2 つのテーブルの関係によって異なります。他の言葉で

「スポンジボブ」が「ゲイリー、カタツムリ」を所有していることをどのように知っていますか?


それらが関連しておらず、単に並べて表示したい場合は、2 つの別々のクエリを使用します。(PHP の例)

$animals = $db->query("SELECT CONCAT(Name, ' ',Category) as Pet_Name_and_Category FROM Animal");
$customers = $db->query("SELECT CONCAT(firstname, ' ',lastname) as Customer_Name From PetCustomer");

while (list($animal) = $animals->fetch_row() || list($customer) = $customers->fetch_row()) {
    echo $animal, "\t", $customer, "\n";
}
于 2013-02-06T08:06:42.757 に答える
0

多分サブクエリを試してください:

SELECT 
    (SELECT CONCAT(Name, ' ',Category) 
     FROM Animal 
     WHERE <column> = <search_argument>)  as Pet_Name_and_Category ,
    (SELECT CONCAT(firstname, ' ',lastname) 
     FROM PetCustomer 
     WHERE <column> = <search_argument>) AS Customer_Name
FROM <first table>
于 2013-02-06T08:11:19.207 に答える