1

私の問題は主に、検索で必要なものをどのように表現すればよいかわからないことです。

mysql> SELECT * FROM `accounts`;
+----+--------+---------+----------+
| id | status | oplevel | username |
+----+--------+---------+----------+
| 10 |      1 |       0 | root     |
| 11 |      1 |       1 | Xylex    |
| 12 |      1 |      16 | Anubis   |
| 13 |      0 |      16 | Kami     |
| 14 |      1 |      16 | Zorn     |
+----+--------+---------+----------+


mysql> SELECT * FROM `networks`;
+-----------+-----------+-------------+-----------------+
| networkid | accountid | networkname | serveraddress   |
+-----------+-----------+-------------+-----------------+
|         1 |        10 | Fakenet     | irc.fakenet.org |
|         2 |        10 | Undernet    | irc.under.net   |
|         3 |        12 | Takenet     | irc.takenet.com |
|         4 |        13 | Examplenet  | irc.example.org |
+-----------+-----------+-------------+-----------------+

このアカウント テーブルとこのネットワーク テーブルがあります。対応するアカウント ID ステータス列が 1 (有効) の場合にのみ、IRC ネットワークのアドレスを返す単一のクエリが必要です。

私は何時間も探していました。何をしますか?

4

3 に答える 3

0

私にとっては単純な結合のように見えます:

select serveraddress from accounts join networks on id=accountid and id=YOUR_ACCOUNT_ID_HERE

または

select serveraddress from networks where accountid=YOUR_ID and exists(select * from accounts where id=accountid and status)

これについて行く多くの方法..

于 2013-02-03T02:32:53.937 に答える
0
select serveraddress from networks, accounts where networks.accountid = accounts.id and accounts.satus=1;

それはあなたが探しているものですか?

于 2013-02-03T02:28:29.390 に答える
0

アカウント ID を配置するようにクエリを更新しました。

select acc.id, acc.username, nw.serveraddress from accounts acc join networks nw on acc.id = nw.accountid where acc.status == 1 and acc.id=XXX
于 2013-02-03T02:27:47.847 に答える